【发布时间】:2011-04-07 13:25:20
【问题描述】:
MS SQL DateDiff 函数在计算两个日期之间的差异时计算跨越的边界数。
不幸的是,这不是我所追求的。例如,2012 年 6 月 1 日 -> 2012 年 6 月 30 日跨越 4 个边界,但涵盖 5 周。
我是否可以运行一个替代查询,它会给出一个月相交的周数?
更新
尝试澄清我的目标:
对于任何给定的月份,我需要与该月相交的周数。
此外,对于仅采用 datediff 并添加一个的建议,这是行不通的。例如,2010 年 2 月仅与 4 周相交。 DateDiff 调用返回 4,这意味着简单地加 1 会使我的周数错误。
【问题讨论】:
-
您是否在查找给定月份的周数(全部和部分)?例如,您是否会说 2011 年 4 月涵盖 5 周,而 2011 年 10 月涵盖 6 周?
-
您能否说明您对哪个日期相关的差异感兴趣?特定的周数,特定的月数?相对于什么?具体日期?具体的日期和时间?
-
@ilivewithian:看看我修改后的答案
-
你如何定义周——美国惯例“天跨度从星期日开始到星期六结束”,还是必须比这更灵活?不同的国家/宗教,不同的定义......
-
@Philip 好问题,对于这种情况,一周需要从星期一开始。
标签: tsql sql-server-2008 datediff