为了账号安全,请及时绑定邮箱和手机立即绑定

如何确定SQL Server中一个月中的天数?

如何确定SQL Server中一个月中的天数?

小怪兽爱吃肉 2019-12-25 15:39:48
我需要确定SQL Server中给定日期的月份中的天数。有内置功能吗?如果没有,我应该使用什么作为用户定义的函数?
查看完整描述

3 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

您可以在指定月份的第一天使用以下命令:


datediff(day, @date, dateadd(month, 1, @date))

要使它适用于每个日期:


datediff(day, dateadd(day, 1-day(@date), @date),

              dateadd(month, 1, dateadd(day, 1-day(@date), @date)))


查看完整回答
反对 回复 2019-12-25
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

在SQL Server 2012中,可以使用EOMONTH(Transact-SQL)来获取月份的最后一天,然后可以使用DAY(Transact-SQL)来获取月份中的天数。


DECLARE @ADate DATETIME


SET @ADate = GETDATE()


SELECT DAY(EOMONTH(@ADate)) AS DaysInMonth


查看完整回答
反对 回复 2019-12-25
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

最优雅的解决方案:适用于任何@DATE


DAY(DATEADD(DD,-1,DATEADD(MM,DATEDIFF(MM,-1,@DATE),0)))

将其扔到函数中或直接内联使用。这将回答原始问题,而其他答案中没有所有多余的垃圾。


来自其他答案的日期示例:


SELECT DAY(DATEADD(DD,-1,DATEADD(MM,DATEDIFF(MM,-1,'1/31/2009'),0))) 返回31


SELECT DAY(DATEADD(DD,-1,DATEADD(MM,DATEDIFF(MM,-1,'2404-feb-15'),0))) 返回29


SELECT DAY(DATEADD(DD,-1,DATEADD(MM,DATEDIFF(MM,-1,'2011-12-22'),0))) 返回31


查看完整回答
反对 回复 2019-12-25
  • 3 回答
  • 0 关注
  • 587 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信