如何从“YearMonth”varchar列获取月末日期?

时间:2016-12-20 18:59:48

标签: sql tsql sql-server-2016

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

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

2 个答案:

答案 0 :(得分:2)

假设您的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)

答案 1 :(得分:1)

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

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

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