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

如何将指定T-SQL日期计算语句转换为Databricks SparkSQL

T-SQL转Databricks SparkSQL实现

先拆解原T-SQL的核心逻辑:获取当前日期所在季度的上一个季度的最后一天,对应SparkSQL的实现代码如下:

SELECT last_day(add_months(make_date(year(current_date()), (month(current_date()) / 4 + 1) * 3, 1), -3))

关键函数对应说明

  • 原T-SQL的sysdatetime() → SparkSQL用current_date()(仅需日期部分时更高效,若需完整时间戳可替换为current_timestamp())
  • 原T-SQL的datefromparts(year, month, day) → SparkSQL的make_date(year, month, day)
  • 原T-SQL的dateadd(quarter, -1, date) → SparkSQL的add_months(date, -3)(一个季度等价于3个月)
  • 原T-SQL的eomonth(date) → SparkSQL的last_day(date)

逻辑验证示例(以当前日期为2024年5月为例)

  1. month(current_date())得到5,(5/4 +1)*3计算为6(当前季度是Q2,最后一个月为6月)
  2. make_date(2024,6,1)生成2024-06-01
  3. add_months(..., -3)往前推3个月得到2024-03-01
  4. last_day()得到2024-03-31,即上一个季度(Q1)的最后一天,和原T-SQL执行结果完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 20:22:00