T-SQL字符串到日期时间的转换

T-SQL字符串到日期时间的转换,sql,tsql,sql-server-2008-r2,Sql,Tsql,Sql Server 2008 R2,我需要将以下格式的字符串值转换为DateTime: 2042-04 2011-01 有没有一个简单的方法可以做到这一点?我试过CAST和CONVERT,运气不好 谢谢 尝试在其末尾附加“-01”,然后进行转换或转换尝试在其末尾附加“-01”,然后进行转换或转换 declare @S varchar(7) set @S = '2042-04' select cast(stuff(@S, 5, 1, '')+'01' as datetime) YYYYMMDD是一种安全的格式,无论使用何种格式

我需要将以下格式的字符串值转换为DateTime:

2042-04
2011-01
有没有一个简单的方法可以做到这一点?我试过
CAST
CONVERT
,运气不好

谢谢

尝试在其末尾附加“-01”,然后进行转换或转换

尝试在其末尾附加“-01”,然后进行转换或转换

declare @S varchar(7)
set @S = '2042-04'

select cast(stuff(@S, 5, 1, '')+'01' as datetime)
YYYYMMDD是一种安全的格式,无论使用何种格式。YYYY-MM-DD不是

YYYYMMDD是一种安全的格式,无论使用何种格式。YYYY-MM-DD不是

似乎需要在字符串中添加一个“天”

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
似乎需要在字符串中添加一个“天”

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