只要您的 DBMS 支持一组标量函数,这些函数能够计算两个日期之间的天数,并且可以为给定日期添加天数,您所需要做的就是计算 Julian Dates 的某种标准化值和做一些相当简单的日期数学。
在 DB/2 环境中,相关函数是:DAYS 和 DATE。从一些你知道儒略日期的基准日期开始。例如,2000-01-01 的儒略日期是:2451545。
接下来使用 DAYS/DATE 标量函数计算同一日期的整数值。在 DB/2 中执行此操作的查询是:
select days(date('2000-01-01'))
from sysibm.sysdummy1
;
这个查询的结果是:730120
使用这两个值计算儒略日期的归一化因子:2451545 - 730120 = 1721425
现在您可以从儒略日期计算公历日期,如下所示:
select date(juliandate - 1721425)
from sysibm.sysdummy1
;
使用您问题中的示例:
select date(2454522 - 1721425),
date(2454571 - 1721425),
date(2455713 - 1721425)
from sysibm.sysdummy1
;
返回以下日期: 2008-02-25 2008-04-14 2011-05-31
您的 DBMS 可能不支持上面示例中使用的特定标量函数,但是,大多数将支持从公历日期添加一些天数并确定两个日期之间的天数的某种机制。您应该能够使用这些函数和儒略日期的标准化因子设计一些可行的公式,如上图所示。