В MySQL есть функция под названием STR_TO_DATE, который преобразует строку в дату.
Вопрос:
Есть ли аналогичная функция в SQL Server?
В MySQL есть функция под названием STR_TO_DATE, который преобразует строку в дату.
Есть ли аналогичная функция в SQL Server?
Если вам нужно проанализировать определенный формат, используйте CONVERT(datetime, @mystring, @format)
. Используйте это как ссылку: http://www.sqlusa.com/bestpractices/datetimeconversion/
Что, если строка 7/7/2010?
Затем используйте CONVERT с 101 (мм / дд / гг) или 103 (дд / мм / гг) в зависимости от того, что вы хотите:
SELECT CONVERT(DATE, '7/7/2010', 103)
Результат:
2010-07-07
Используйте CAST.
declare @MyString varchar(10)
declare @MyDate datetime
set @MyString = '2010-08-19'
set @MyDate = cast(@MyString as datetime)
select @MyDate
Вот хороший пример:
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))
Вот что вы получите в зависимости от 101
, 103
или 6
:
09/06/2017 -- 06/09/2017 -- 06 Sep 17
Хороший обзор типов дат можно найти здесь - https://www.w3schools.com/sql/func_convert.asp
На MSSQL: выберите cast ('2012/06/12 10:32 AM' как datetime);
Вы получите: 2012-06-12 10: 32: 00.000