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

如何将SQL的DATEADD日期计算脚本迁移为Spark SQL兼容格式

迁移DATEADD+EOMONTH到Spark SQL的兼容写法

原SQL语句DATEADD(DAY, 1, EOMONTH(CURRENT_TIMESTAMP, -2))的核心逻辑是:获取当前时间所在月份往前推2个月的月末日期,再加1天,最终得到「往前推2个月的下一个月第一天」(等价于「当前月份往前推1个月的第一天」)。

由于Spark SQL没有EOMONTH函数,以下是两种等价的兼容写法:

写法一:贴近原逻辑直译

用last_day替代EOMONTH获取月末,结合add_months实现月份偏移,再用date_add加1天:

date_add(last_day(add_months(current_timestamp(), -2)), 1)

写法二:更简洁的等价逻辑

利用trunc函数直接截取「往前推1个月的月份第一天」,逻辑上和原SQL完全一致:

trunc(add_months(current_timestamp(), -1), 'MM')

验证示例

假设当前时间为2024-05-15:

  • 原SQL输出:2024-04-01
  • 两种Spark SQL写法的输出均为2024-04-01,结果完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 22:51:13