SQL datetime значение - PullRequest
       13

SQL datetime значение

1 голос
/ 13 октября 2009

У меня есть данные в формате "2009-07-17T00: 00: 00-05: 00" в переменной varchar. Как я могу преобразовать эти данные в поле datetime на сервере MS SQL, используя запрос или TSQL?

Ответы [ 2 ]

4 голосов
/ 13 октября 2009

Если вы используете SQL Server 2008, вы можете использовать тип datetimeoffset:

select cast('2009-07-17T00:00:00-05:00' as datetimeoffset)

Поскольку вы работаете в 2005 году, тип данных datetimeoffset недоступен для вас. Вы должны решить, хотите ли вы хранить информацию о часовом поясе отдельно. Если вам нужна только часть datetime, просто удалите часть часового пояса из строки и приведите ее как datetime:

select cast(left('2009-07-17T00:00:00-5:00', 19) as datetime)
2 голосов
/ 13 октября 2009

Преобразование в DATETIME не будет работать, но этот формат является допустимым форматом даты и времени XML, поэтому вы можете сначала направить приведение через тип XML:

declare @d varchar(50);
select @d = '2009-07-17T00:00:00-05:00';

select x.value(N'.', N'datetime') from (select cast(@d as xml) as x) as t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...