计算Teradata中的前一周数据

时间:2015-06-01 17:45:51

标签: teradata weekday

如何计算前7天的数据(上周的周日至周六)。在一周的任何一天运行它应该总是给上周的周日 - 周六。 感谢

2 个答案:

答案 0 :(得分:5)

你的Teradata版本是什么?

TD14支持NEXT_DAY,它会在指定日期之后返回第一个“工作日”:

SELECT NEXT_DAY(CURRENT_DATE, 'sun'),    -- next sunday
       NEXT_DAY(CURRENT_DATE, 'sun')-14, -- previous week's sunday
       NEXT_DAY(CURRENT_DATE, 'sun')-8   -- previous week's saturday

编辑:

在TD13中,您可以减去星期几以获得前一周的结束日期,例如根据已知的星期一'0001-01-01',(CURRENT_DATE - DATE '0001-01-01') MOD 7 + 1在星期一到星期日返回1到7。

根据您的需要进行修改(周日周开始),结果如下:

SELECT
   CURRENT_DATE - ((CURRENT_DATE - DATE '0001-01-07') MOD 7 + 7),  -- previous week's Sunday 
   CURRENT_DATE - ((CURRENT_DATE - DATE '0001-01-07') MOD 7 + 1)   -- previous week's Saturday

答案 1 :(得分:0)

日历表的另一个好用途:

select calendar_date
from
sys_calendar.calendar
where
week_of_calendar =
(select week_of_calendar from sys_calendar.calendar where calendar_date = current_Date) -1