【问题标题】:How to get end of month date from a "YearMonth" varchar column?如何从“YearMonth”varchar 列中获取月末日期?
【发布时间】:2016-12-20 18:59:48
【问题描述】:

我们有 YearMonth VARCHAR(10) 列,我正在尝试创建一个日期列,它将根据 YearMonth 列给出该月的最后一个日期。

For Example:
201612 - 12/31/2016
201602 - 02/29/2016
201702 - 02/28/2017

【问题讨论】:

  • 你试过什么sql?我们需要付出一些努力:)

标签: sql tsql sql-server-2016


【解决方案1】:

假设你的 varchar 是 201612

Select EOMonth(cast(YourVarchar+'01' as date))

返回

2016-12-31

如果你想要 MM/DD/YYYY 格式

Select Convert(varchar(10),EOMonth(cast(YourVarchar+'01' as date)),101)

【讨论】:

  • @Justin 从来没有怀疑过 :)
【解决方案2】:

如果您使用的是 2012 年之前的 SQL 版本:

使用 DATEADD 将月份添加到日期,然后也使用 DATEADD 减去一天

SELECT DATEADD(DAY, -1, DATEADD(MONTH, 1, CONVERT(DATETIME, '201612' + '01')))

【讨论】:

    猜你喜欢
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    • 2020-03-05
    • 1970-01-01
    相关资源
    最近更新 更多