Sql 如何从a";中获取月底日期;“年-月”;varchar列?

Sql 如何从a";中获取月底日期;“年-月”;varchar列?,sql,tsql,sql-server-2016,Sql,Tsql,Sql Server 2016,我们有YearMonth VARCHAR(10)列,我正在尝试创建一个date列,它将根据YearMonth列给出该月的最后日期 For Example: 201612 - 12/31/2016 201602 - 02/29/2016 201702 - 02/28/2017 假设您的varchar是201612 Select EOMonth(cast(YourVarchar+'01' as date)) 返回 2016-12-31 如果需要MM/DD/YYYY格式 Select Conve

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

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

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

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

用DATEADD在日期上加一个月,然后用DATEADD减去一天

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

你试过什么sql?我们需要看到一些努力:)@Justin从来没有怀疑过:)