Функция str_to_date на сервере sql?

В MySQL есть функция STR_TO_DATE, которая преобразует строку в дату.

Вопрос:

Есть ли аналогичная функция в SQL Server?

6 ответов

Решение

Если вам нужно разобрать определенный формат, используйте 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(<string> AS DATETIME)

Используйте 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: выберите приведение ("2012/06/12 10:32AM" в качестве даты и времени);

Вы получите: 2012-06-12 10:32:00.000

Другие вопросы по тегам