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

DB2 12.1中如何将整数日期值转换为标准日期格式?

DB2 12.1 整数日期值转换为标准日期格式

方法1:保留完整时间部分(匹配SQL Server结果)

如果需要和SQL Server语句的输出一致,保留01:01:01.111...的时间部分,可使用ADD_DAYS配合时间戳起始值,再通过TO_CHAR格式化:

SELECT TO_CHAR(
         ADD_DAYS(TIMESTAMP('1849-12-31 01:01:01.111111'), AAA."Date"),
         'YYYY-MM-DD HH24:MI:SS.FF6'
       ) AS STANDARD_DATE
FROM AAA
WHERE condition;
  • 说明:
    • TIMESTAMP('1849-12-31 01:01:01.111111') 对应SQL Server中的起始时间(DB2时间戳精度为6位,截断最后一位不影响日期计算)
    • ADD_DAYS 将整数天数加到时间戳上,返回包含时间的完整时间戳
    • TO_CHAR 用于格式化输出,可根据需求调整格式字符串(仅需日期则用'YYYY-MM-DD')

方法2:仅转换日期部分

如果只需要日期结果,可简化为:

SELECT DATE(ADD_DAYS(DATE('1849-12-31'), AAA."Date")) AS STANDARD_DATE
FROM AAA
WHERE condition;

或者用DAYS函数计算:

SELECT DATE(DAYS('1849-12-31') + AAA."Date") AS STANDARD_DATE
FROM AAA
WHERE condition;

之前尝试未达预期的原因

  • 若你之前仅用ADD_DAYS('1849-12-31', 59169),返回的是DATE类型(仅日期),无法体现时间部分,和SQL Server带时间的结果存在差异
  • 若日期计算仍有偏差,需确认整数列"Date"的值是否为完整天数偏移,以及会话时区是否和SQL Server一致(DB2默认使用会话时区,可能影响时间戳显示)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 02:33:20