季度计算 SQL 的周数
Posted
技术标签:
【中文标题】季度计算 SQL 的周数【英文标题】:Week of quarter calculation SQL 【发布时间】:2016-11-23 12:55:03 【问题描述】:我正在尝试使用 sql 从 cal_date_d 表中查找季度的星期几。我的表有 cal_date、财政季度开始和结束日期。我还有一个包含财政周数的专栏。我的财政年度从二月开始。 但是,我必须解决此问题的最接近的查询如下:
select datepart(week, DATEADD(MONTH,-10,cal_date)) - ((DatePart(quarter, DATEADD(MONTH,-10,cal_date))-1) *13),
fiscal_week_of_year,
weekofqtr,
cal_date
from cal_date_d_tst
现在我得到的第一周结果总是 0。我不确定我哪里出错了。
帮我解决这个问题..
【问题讨论】:
根据您的样本集,预期的数据应该是什么? @BhupeshC 它应该始终在财政年度的第一个星期日开始季度计数的一周 【参考方案1】:如果你有fiscal_quarter_start
,那么这不起作用吗?
select 1 + datediff(day, fiscal_quarter_start, cal_date) / 7
这只是计算进入季度的天数并除以 7。
【讨论】:
@gordanlinoff 不幸的是,这没有帮助.. 发生的事情是一周应该总是从星期日开始,到星期六结束。在上述情况下,如果季度从星期三开始,则查询将星期三至星期二视为一周。【参考方案2】:如果您的查询基于 DATEPART(Quarters),请使用以下内容。
DATEDIFF(WEEK, DATEADD(MONTH, DATEDIFF(MONTH, 0, '2012-03-17'), 0), '2012-03-17') +1 AS WeekNoMonth,DATEDIFF(WEEK, DATEADD(QUARTER, DATEDIFF(QUARTER, 0, '2012-03-17'), 0), '2012-03-17') +1
Source
【讨论】:
以上是关于季度计算 SQL 的周数的主要内容,如果未能解决你的问题,请参考以下文章