问题
MySQL has a function called STR_TO_DATE, that converts a string to date.
Question:
Is there a similar function in SQL Server?
回答1:
If you need to parse a particular format, use CONVERT(datetime, @mystring, @format)
. Use this as a reference: http://www.sqlusa.com/bestpractices/datetimeconversion/
回答2:
What if the string is 7/7/2010?
Then use CONVERT with either 101 (mm/dd/yy) or 103 (dd/mm/yy) depending on what you want:
SELECT CONVERT(DATE, '7/7/2010', 103)
Result:
2010-07-07
回答3:
Use CAST.
declare @MyString varchar(10)
declare @MyDate datetime
set @MyString = '2010-08-19'
set @MyDate = cast(@MyString as datetime)
select @MyDate
回答4:
CAST(<string> AS DATETIME)
回答5:
Here is a good example:
declare @myDate datetime
set @myDate = '06/09/2017'
select concat(convert(varchar(20), @myDate,101), ' -- ',
convert(varchar(20), @myDate,103), ' -- ',
convert(varchar(20), @myDate,6))
This is what you get, depending on 101
or 103
or 6
:
09/06/2017 -- 06/09/2017 -- 06 Sep 17
A good summary of types of dates is here - https://www.w3schools.com/sql/func_convert.asp
回答6:
On MSSQL: select cast('2012/06/12 10:32AM' as datetime);
You will get it: 2012-06-12 10:32:00.000
来源:https://stackoverflow.com/questions/3525593/str-to-date-function-in-sql-server