【问题标题】:SQL Server: Convert a month name (string) to a dateSQL Server:将月份名称(字符串)转换为日期
【发布时间】:2016-03-09 22:56:12
【问题描述】:

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

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

两者都会导致转换失败。

我使用的是 SQL Server 2008。

【问题讨论】:

  • 好吧,字符串“November”本身并不是一个有效的日期。它还需要一个您可以轻松添加的日期和年份。
  • 你说得对,这不是约会。但我想把它变成一个,这样我就可以用它进行日期查询/排序。即如果当前月份 = 11 月,那么......

标签: sql-server datetime types type-conversion


【解决方案1】:

您可以在输入值的末尾硬编码字符串值。像这样。

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-01
    • 1970-01-01
    • 2017-02-07
    • 1970-01-01
    • 2020-07-25
    相关资源
    最近更新 更多