Преобразование строки T-SQL в DateTime - PullRequest
1 голос
/ 08 июля 2011

Мне нужно преобразовать строковые значения следующих форматов в DateTime:

2042-04
2011-01

Есть ли простой способ сделать это? Я попробовал CAST И CONVERT без особой удачи.

Спасибо!

Ответы [ 4 ]

6 голосов
/ 08 июля 2011

попробуйте добавить "-01" в конец и затем выполнить приведение или преобразование

2 голосов
/ 08 июля 2011
declare @S varchar(7)
set @S = '2042-04'

select cast(stuff(@S, 5, 1, '')+'01' as datetime)

ГГГГММДД - безопасный формат независимо от SET DATEFORMAT . ГГГГ-ММ-ДД нет. http://www.sommarskog.se/wishlist.html#YYYYMMDD

0 голосов
/ 08 июля 2011
Declare @Table Table
(
    ColDateTime Varchar(100)
)
Insert into @Table
Select '2042-04' UNION ALL
Select '2011-01'

Select ColDateTime As VarcharCol,
Cast(
    substring(ColDateTime,0,charindex('-',ColDateTime))+substring(ColDateTime,charindex('-',ColDateTime)+1,len(ColDateTime))+'01'
As DateTime) As DateTimeCol
from @Table
0 голосов
/ 08 июля 2011
SELECT CAST('2011-01-01' AS DATETIME)
SELECT CONVERT(DATE , '2011-01-01')

Кажется, вам нужно добавить 'day' в строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...