【发布时间】:2019-11-14 12:14:56
【问题描述】:
需要像1,2,3,4 一样找到weekNumber,但一周从星期三开始,从日期列到星期二结束,在第 4 周之后,再次作为第 1 周重新开始,依此类推(无需考虑月)。
只需要根据weekNumber 找到Period,4 周为 1 期和以 13 结尾的期(期 1-13)将在第 1 期重新开始。
(4 周 = 1 期)(无需考虑月份)。
现在需要根据Period 计算businessyear。 13 个周期为一个 businessyear。 (13 个周期 = 1 年)
计算逻辑:
- 7 天 * 4 周 = 28 天 = 1 个周期
- 13 个周期 = 1 个工作年
例子:
- 一年通常有365天
- 在我的场景中,4 周 * 7 天 = 28 天
- 28 天 *13 个周期 = 364 天
- 剩余天数将在第 5 周和第 14 期到来。
Datekey date Year semistor Quarter Month DayName DayNum Wnumber
20090101 01-01-2009 2009 1 1 January 1 Thursday 1 0
20090102 02-01-2009 2009 1 1 January 1 Friday 2 0
20090103 03-01-2009 2009 1 1 January 1 Saturday 3 0
20090104 04-01-2009 2009 1 1 January 1 Sunday 0
20090105 05-01-2009 2009 1 1 January 1 Monday 0
20090106 06-01-2009 2009 1 1 January 1 Tuesday 6 0
20090107 07-01-2009 2009 1 1 January 1 Wednesday 0 0
20090108 08-01-2009 2009 1 1 January 1 Thursday 1 1
20090109 09-01-2009 2009 1 1 January 1 Friday 2 1
20090110 10-01-2009 2009 1 1 January 1 Saturday 3 1
20090111 11-01-2009 2009 1 1 January 1 Sunday 4 1
20090112 12-01-2009 2009 1 1 January 1 Monday 5 1
20090113 13-01-2009 2009 1 1 January 1 Tuesday 6 1
20090114 14-01-2009 2009 1 1 January 1 Wednesday 0 1
在我的场景中不需要考虑月份,还需要考虑闰年(2016 年、2020 年)。
【问题讨论】:
标签: sql amazon-web-services amazon-redshift