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

如何在Microsoft SQL Server 2016中实现DB2风格的日期数字表示?

在SQL Server 2016中实现DB2 DAYS函数的效果

DB2的DAYS()函数返回从公元0001年1月1日到目标日期的总天数(包含目标日期当天),在SQL Server 2016中可以通过DATEDIFF()函数结合加1的方式实现完全一致的效果:

等价实现代码

SELECT POSTING_DATE, 
       DATEDIFF(day, '0001-01-01', POSTING_DATE) + 1 AS NUMBER_REPRESENTATION
FROM core.env;

逻辑说明

  • SQL Server的DATEDIFF(day, start_date, end_date)返回的是两个日期之间的间隔天数(不含起始日期当天)
  • DB2的DAYS()计算的是从0001-01-01到目标日期的总天数(包含目标日期),因此需要给DATEDIFF的结果加1来匹配这个逻辑
  • 该方法支持SQL Server 2016及以上版本,覆盖的日期范围(0001-01-01至9999-12-31)与DB2的DAYS()函数一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 21:15:06