DB2-两个时间戳之间的天数之差

如何在DB2中获得以天为单位的两个时间戳之间的精确差异。我的意思是,如果一个日期是FROM_DATE = 5/6/2015 2:22:27.000000 PM和TO_DATE = 3/30/2015 2:33:52.000000 PM,则时间戳记差异应显示36天。我尝试在下面使用

((24*DAYS(From_Date)+MIDNIGHT_SECONDS(From_Date)/3600) -

        (24*DAYS(To_Date)+MIDNIGHT_SECONDS(To_Date)/3600))/(24)

但这给了我37天的时间。

zgwl369 回答:DB2-两个时间戳之间的天数之差

SELECT days_between ('2015-05-06-02.22.27.000000','2015-03-30-02.33.52.000000')
FROM SYSIBM.sysdummy1

返回36。

,

错误的公式。查看以下内容。

SELECT
  FROM_DATE,TO_DATE,(
  (24*DAYS(From_Date)+MIDNIGHT_SECONDS(From_Date)/3600) 
- (24*DAYS(To_Date)+MIDNIGHT_SECONDS(To_Date)/3600)
)/24 AS D1,(
  (DAYS(From_Date)*bigint(86400) + MIDNIGHT_SECONDS(From_Date))
- (DAYS(To_Date)  *bigint(86400) + MIDNIGHT_SECONDS(To_Date))
)/86400 AS D2
FROM 
(
VALUES 
  (TIMESTAMP('2015-05-06-14.22.27'),TIMESTAMP('2015-03-30-14.33.52')),(TIMESTAMP('2015-03-31-14.22.27'),(TIMESTAMP('2015-04-01-14.22.27'),TIMESTAMP('2015-03-30-14.33.52'))
) T(FROM_DATE,TO_DATE);

|FROM_DATE                 |TO_DATE                   |D1         |D2                  |
|--------------------------|--------------------------|-----------|--------------------|
|2015-05-06-14.22.27.000000|2015-03-30-14.33.52.000000|37         |36                  |
|2015-03-31-14.22.27.000000|2015-03-30-14.33.52.000000|1          |0                   |
|2015-04-01-14.22.27.000000|2015-03-30-14.33.52.000000|2          |1                   |
本文链接:https://www.f2er.com/3141814.html

大家都在问