【发布时间】:2010-12-11 09:16:53
【问题描述】:
我试图在 Oracle 11g 中查找两个日期之间的整数天数。
我可以通过这样做来接近
select sysdate - to_date('2009-10-01', 'yyyy-mm-dd') from dual
但这会返回一个间隔,我还没有成功地将它转换为整数。
编辑:显然在 10g 中,这会将天数作为整数返回。
【问题讨论】:
-
SQL 应该返回一个数值,而不是一个区间
-
仅 10 多年后 - here's a db<>fiddle 演示了从日期中减去日期(例如 SYSDATE)和从时间戳中减去日期(例如 SYSTIMESTAMP)之间的区别。前者产生一个表示两个日期之间天数的数字,而后者产生一个表示两个日期之间天数的间隔。实际上,在计算中的任何位置引入 TIMESTAMP 都会导致返回 INTERVAL,因此可能 OP 重新定义了 SYSDATE。