Sql Oracle中的DATEDIFF函数
我需要使用Oracle,但DATEDIFF函数在Oracle数据库中不起作用 如何在Oracle中编写以下代码?我看到了一些使用INTERVAL或TRUNC的示例Sql Oracle中的DATEDIFF函数,sql,oracle,select,datediff,Sql,Oracle,Select,Datediff,我需要使用Oracle,但DATEDIFF函数在Oracle数据库中不起作用 如何在Oracle中编写以下代码?我看到了一些使用INTERVAL或TRUNC的示例 SELECT DATEDIFF ('2000-01-01','2000-01-02') AS DateDiff; 你可以简单地减去两个日期。您必须先使用将其转换为日期: select to_date('2000-01-01', 'yyyy-MM-dd') - to_date('2000-01-02', 'yyyy-MM
SELECT DATEDIFF ('2000-01-01','2000-01-02') AS DateDiff;
你可以简单地减去两个日期。您必须先使用
将其转换为日期
:
select to_date('2000-01-01', 'yyyy-MM-dd')
- to_date('2000-01-02', 'yyyy-MM-dd')
datediff
from dual
;
结果以天为单位,这两个日期的差值为
-1
(如果愿意,可以交换这两个日期)。如果你想以小时为单位,只需将结果乘以24。只需减去两个日期:
select date '2000-01-02' - date '2000-01-01' as dateDiff
from dual;
结果将是以天为单位的差异
更多详细信息请参见手册:在Oracle中,只需减去两个日期,就可以得到天的差值。还请注意,与SQL Server或MySQL不同,在Oracle中,如果没有
from
子句,则无法执行select
语句。解决这个问题的一种方法是使用内置的虚拟表,dual
:
SELECT TO_DATE('2000-01-02', 'YYYY-MM-DD') -
TO_DATE('2000-01-01', 'YYYY-MM-DD') AS DateDiff
FROM dual
我们可以直接减去日期得到天数的差值
SET SERVEROUTPUT ON ;
DECLARE
V_VAR NUMBER;
BEGIN
V_VAR:=TO_DATE('2000-01-02', 'YYYY-MM-DD') - TO_DATE('2000-01-01', 'YYYY-MM-DD') ;
DBMS_OUTPUT.PUT_LINE(V_VAR);
END;
可能的副本谢谢你的回答!我明天会试试,因为我的电脑里只有SQL server。再次感谢您的时间和解释~:)谢谢您的回答!我明天会试试,因为我的电脑里只有SQL server。再次感谢您在链接中抽出时间~:@user3601310:a
明天是什么,因为
?(因为听起来像德语中“呕吐”的意思…)谢谢你的回答!我明天会试试,因为我的电脑里只有SQL server。再次感谢您的时间和解释~:)