teradata - 在 Teradata 中计算上周数据

标签 teradata weekday

如何计算前 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/

相关文章:

ios - 获取一个月内的工作日

sql - 按 ID 选择最近增加值列

database - 在 Debian 或 CentOS 中安装 Teradata

scala - 在 Spark 中将数据帧写入 Teradata

Python datetime 工作日数字代码 - 动态?

php - 如何在 php 中找到最近的星期几?

sql - 如何在 SQL 查询中获取父值和最后替换的值

spring-data - 如何在使用@NamedStoredProcedureQuery 时指定架构名称

python - 在 python 中查找一年中以周六结束的一周和至少包含 4 天的第一周

swift - 从 NSCalendar.dateFromComponents 获取奇怪的日期