SQL Server:将月份名称(字符串)转换为日期

时间:2015-12-04 21:45:00

标签: sql-server datetime types type-conversion

我有一个带有月份名称的表作为varchar类型。例如“十一月”。我可以将其转换为日期字段吗?

CONVERT(DATETIME,main.ReportMonth) AS ReportMonthDate
CAST(main.ReportMonth AS DATETIME) AS ReportMonthDate

都会导致转换失败。

我正在使用SQL Server 2008。

1 个答案:

答案 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)