首页 > 解决方案 > 如何减去系统日期?

问题描述

SELECT SYSDATE - TO_DATE('1-02-2009', 'DD-MM-YYYY')
FROM DUAL;

但不起作用:/

输出 :

3981.202453703703703703703703703703703704

标签: sqloracle

解决方案


当您在 Oracle 中减去两个日期时,您会得到天数的差异。

要获得小时数、分钟数或秒数,您需要将它们分别乘以一天中的小时数、一天中的分钟数或一天中的秒数,如下所示:

SQL> SELECT
  2      ROUND(SYSDATE - TO_DATE('01-02-2009', 'DD-MM-YYYY'), 2) AS DIFF_IN_DAYS,
  3      ROUND((SYSDATE - TO_DATE('01-02-2009', 'DD-MM-YYYY')) * 24, 2) AS DIFF_IN_HOURS,
  4      ROUND((SYSDATE - TO_DATE('01-02-2009', 'DD-MM-YYYY')) * 24 * 60, 2) AS DIFF_IN_MINUTES,
  5      ROUND((SYSDATE - TO_DATE('01-02-2009', 'DD-MM-YYYY')) * 24 * 60 * 60, 2) AS DIFF_IN_SECONDS
  6  FROM
  7      DUAL;

DIFF_IN_DAYS DIFF_IN_HOURS DIFF_IN_MINUTES DIFF_IN_SECONDS
------------ ------------- --------------- ---------------
     3981.53      95556.78      5733406.58       344004395

SQL>

干杯!!


推荐阅读