我有一个带有月份名称的表作为varchar类型。例如“十一月”。我可以将其转换为日期字段吗?
CONVERT(DATETIME,main.ReportMonth) AS ReportMonthDate
CAST(main.ReportMonth AS DATETIME) AS ReportMonthDate
都会导致转换失败。
我正在使用SQL Server 2008。
答案 0 :(得分:0)
您可以在输入值的末尾对字符串值进行硬编码。这样的事情。
declare @ReportMonth varchar(10) = 'November'
select cast(@ReportMonth + ' 1, 2015' as date)
或者,如果您想根据当前日期使年份部分动态,您可以稍微修改一下。
select cast(@ReportMonth + ' 1, ' + cast(datepart(year, getdate()) as char(4)) as date)