You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Teradata或SAS SQL生成包含月度起止日期的动态表

Teradata实现动态月度起止日期表方案

直接执行以下SQL,仅需修改临时表中的两个年份参数,即可生成对应区间内所有月份的起止日期:

-- 替换下方两个参数为你需要的起始、结束年份
REPLACE VOLATILE TABLE input_years AS
SELECT 
  2016 AS start_year,
  2021 AS end_year
WITH DATA ON COMMIT PRESERVE ROWS;

SELECT
  BEGIN(pd) AS Begin_of_Month,
  LAST_DAY(BEGIN(pd)) AS End_of_Month
FROM input_years
EXPAND ON PERIOD(
  TO_DATE(start_year || '-01-01', 'YYYY-MM-DD'), -- 区间起始为起始年1月1日
  TO_DATE((end_year + 1) || '-01-01', 'YYYY-MM-DD') -- 区间结束为结束年下一年1月1日,保证包含结束年12月
) AS pd
BY ANCHOR MONTH_BEGIN;

说明

  • 代码自动适配闰年2月、大小月的月末日期计算,无需额外手动判断
  • 如需输出YYYY-MM-DD格式的字符串类型日期,可将字段改写为:
TO_CHAR(BEGIN(pd), 'YYYY-MM-DD') AS Begin_of_Month,
TO_CHAR(LAST_DAY(BEGIN(pd)), 'YYYY-MM-DD') AS End_of_Month
  • 如果不需要保留临时表,也可以直接把年份写死在PERIOD参数中,简化语句。

内容的提问来源于stack exchange,提问作者Eren

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 08:30:05