gpt4 book ai didi

sql-server-2008 - 如何从sql server 2008中的日期获取月份的周数

转载 作者:行者123 更新时间:2023-12-03 10:18:57 27 4
gpt4 key购买 nike

在 microsoft sql server 的 SQL Statement 中,有一个内置函数可以获取周数,但它是一年中的第几周。

Select DatePart(week, '2012/11/30') // **returns 48**

返回值 48 是一年中的周数。

而不是 48 , 我想得到 1、2、3 或 4 (当月的周数)。我认为本月的周数可以通过具有本周月数的模块来实现。例如
Select DATEPART(week, '2012/11/30')%MONTH('2012/11/30')

但我想知道是否有其他内置函数可以在 MS SQL SERVER 中获取当月的 WeekNumber。

最佳答案

这里有 2 种不同的方式,都假设一周从星期一开始
如果您希望周是完整的,那么它们属于它们开始的月份:
所以星期六 2012-09-01 和星期日 2012-09-02 是第 4 周,星期一 2012-09-03 是第 1 周使用这个:

DECLARE @date date = '2012-09-01'
SELECT (day(datediff(d,0,@date)/7*7)-1)/7+1
如果您的周数因月份变化而减少,因此星期六 2012-09-01 和星期日 2012-09-02 是第 1 周,星期一 2012-09-03 是第 2 周,请使用以下命令:
DECLARE @date date = '2012-09-01'
SELECT
datediff(ww,datediff(d,0,dateadd(m,datediff(m,7,@date),0)
)/7*7,dateadd(d,-1,@date))+1
我收到了杰拉德的电子邮件。他指出了第二种方法的缺陷。现在应该修复
我收到了本威尔金斯的一封电子邮件。他指出了第一种方法的缺陷。现在应该修复

关于sql-server-2008 - 如何从sql server 2008中的日期获取月份的周数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13116222/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com