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

将Hana中含INTERVAL '1 day'的日期计算语句转换为SQL Server语法

原Hana语法逻辑解释
  • INTERVAL '1 day' 是Hana中代表1天时间间隔的常量,与数值类型的B."ZBD1T"相乘的作用是把数字转换为对应天数的时间间隔:比如B."ZBD1T" = 67时,运算后就得到67天的时间间隔,等同于直接给日期加67天。
  • 整段Hana逻辑的完整执行流程是:
    1. 给基准日期B."ZFBDT"加上B."ZBD1T"对应的天数
    2. 把计算结果转换为DATE类型,清除所有时分秒信息,仅保留日期部分
    3. 拼接固定时间23:59:59,最终得到目标日期当天最后一秒的完整时间戳
  • 你给出的示例计算是对的:2020-10-30加67天确实为2021-01-05,拼接时间后结果和你贴的RES完全一致。
SQL Server 等价实现代码

SQL Server没有INTERVAL语法,日期加减统一使用DATEADD函数实现,以下是完全等价的写法:

-- 写法1:兼容SQL Server 2008及以上版本,逻辑和原代码完全对应
CAST(CAST(DATEADD(DAY, B.ZBD1T, B.ZFBDT) AS DATE) AS DATETIME) + CAST('23:59:59' AS DATETIME)

-- 写法2:更严谨的避免时间精度问题写法,运算结果一致
DATEADD(SECOND, 86399, CAST(DATEADD(DAY, B.ZBD1T, B.ZFBDT) AS DATE))

两种写法代入你的示例参数都会返回2021-01-05 23:59:59,和原Hana逻辑效果完全相同。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:36:04