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

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

Вопрос:

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


person Alex Gordon    schedule 19.08.2010    source источник
comment
возможный дубликат преобразования строки сервера Sql в дату   -  person OMG Ponies    schedule 19.08.2010


Ответы (6)


Если вам нужно проанализировать определенный формат, используйте CONVERT(datetime, @mystring, @format). Используйте это как ссылку: http://www.sqlusa.com/bestpractices/datetimeconversion/

person Aaron D    schedule 19.08.2010

Что, если строка 7/7/2010?

Затем используйте CONVERT с 101 (мм / дд / гг) или 103 (дд / мм / гг) в зависимости от того, что вы хотите:

SELECT CONVERT(DATE, '7/7/2010', 103)

Результат:

2010-07-07
person Mark Byers    schedule 19.08.2010

Используйте CAST.

declare @MyString varchar(10)
declare @MyDate datetime

set @MyString = '2010-08-19'
set @MyDate = cast(@MyString as datetime)
select @MyDate
person Joe Stefanelli    schedule 19.08.2010

Вот хороший пример:

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

person Vityata    schedule 20.07.2017

На MSSQL: выберите cast ('2012/06/12 10:32 AM' как datetime);

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

person ndukan    schedule 23.06.2017

person    schedule
comment
Вы можете привести пример того, как это использовать? какая строка это 7/7/2010 в отличие от 07/07/10 ?? - person Alex Gordon; 19.08.2010
comment
CAST / CONVERT работает, если у вас есть поддерживаемый формат - STR_TO_DATE поддерживает пользовательские форматы. - person OMG Ponies; 19.08.2010
comment
STR_TO_DATE - это mysql, а не sqlserver - person Stealth Rabbi; 25.04.2012