【问题标题】: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
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)
【解决方案2】:
如果您使用的是 2012 年之前的 SQL 版本:
使用 DATEADD 将月份添加到日期,然后也使用 DATEADD 减去一天
SELECT DATEADD(DAY, -1, DATEADD(MONTH, 1, CONVERT(DATETIME, '201612' + '01')))