我如何计算MSSQL中一个月中有多少个星期天?

问题描述 投票:-1回答:1
  • 这里只是一个星期天,但我无法数出一个月中有多少个星期天:

    选择dateadd(dd,8-datepart(dw,'2019-11-01'),'2019-11-01')

sql-server count dayofweek days
1个回答
0
投票

很简单,因为WW在DATEDIFF中的工作方式(注意:startdate为非包容性,因此为-1)。

SELECT 
    DATEDIFF(ww, CAST('20081228' AS datetime)-1, '20090131') AS NumOfSundays

获取一个月的开始和结束(在本例中为current_timestamp:):

SELECT 
     DATEADD(month, DATEDIFF(month, 0, CURRENT_TIMESTAMP), 0) AS StartOfMonth
    ,EOMONTH(CURRENT_TIMESTAMP) AS EndOfMonth 

注意:WW不会返回整周数,但实际上它确实会返回星期日数(除非第一个日期是星期天)。

并且-1有效,因为DATETIME可转换为浮点数,其中整数部分是自1900/01/01开始的天数。逗号后面的部分是以24小时的百分比表示的时间。

© www.soinside.com 2019 - 2024. All rights reserved.