如何计算前 7 天的数据(前一周的周日至周六)。无论一周中的哪一天运行,它都应始终给出前一周的星期日至星期六。 谢谢
最佳答案
您的 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 中,您可以减去星期几以获得上一周的结束日期,例如(CURRENT_DATE - DATE '0001-01-01') MOD 7 + 1
根据已知的星期一“0001-01-01”,返回星期一到星期日的 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
关于teradata - 在 Teradata 中计算上周数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30579877/