给定月份的剩余天数如何计算当前月份的剩余天数?例如,如果当前月份是November,今天的日期是16/11/2016月份的天数- Elapse days =?我想动态计算在我的示例中30 - 16 = 14
declare @date date
set @date='16 Nov 2016'
select datediff(day, @date, dateadd(month, 1, @date)) - 16 AS DaysLeft
给定月份的剩余天数如何计算当前月份的剩余天数?例如,如果当前月份是November,今天的日期是16/11/2016月份的天数- Elapse days =?我想动态计算在我的示例中30 - 16 = 14
declare @date date
set @date='16 Nov 2016'
select datediff(day, @date, dateadd(month, 1, @date)) - 16 AS DaysLeft
7条答案
按热度按时间xuo3flqw1#
由于这是sql server 2008,您不能使用EOMonth(在2012版本中引入)。
你必须做一些日期添加和日期差异:
解释:
DATEADD(DAY, 1 - DAY(GETDATE()), GETDATE())
得到当前月份的第一天, PackageDATEADD
加上一个月, PackageDATEDIFF
返回当前日期和下个月的第一天之间的天数,这就是为什么需要减去1才能得到正确的天数。f45qwnt82#
unftdfkk3#
只需使用Datepart函数:
9w11ddsr4#
将日期更改为getdate()
vx6bjr1n5#
ercv8c1e6#
使用
EOMONTH
和DATEDIFF
函数对于
sql server 2012
的以下版本,使用以下解决方案au9on6nz7#
函数示例
或使用