我需要使用Oracle,但DATEDIFF函数在Oracle DB中不起作用。Oracle中的DATEDIFF函数
如何在Oracle中编写以下代码?我看到一些使用INTERVAL或TRUNC的例子。
SELECT DATEDIFF ('2000-01-01','2000-01-02') AS DateDiff;
我需要使用Oracle,但DATEDIFF函数在Oracle DB中不起作用。Oracle中的DATEDIFF函数
如何在Oracle中编写以下代码?我看到一些使用INTERVAL或TRUNC的例子。
SELECT DATEDIFF ('2000-01-01','2000-01-02') AS DateDiff;
在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
谢谢你的回答!我明天会试一下,因为我的电脑只有SQL服务器。再次感谢您的时间和解释〜:) – user3601310 2015-02-09 10:05:18
您可以简单地减去两个日期。你必须先施放它,使用to_date
:
select to_date('2000-01-01', 'yyyy-MM-dd')
- to_date('2000-01-02', 'yyyy-MM-dd')
datediff
from dual
;
结果是天,这两个日期的差别是-1
(你可以交换两个日期,如果你喜欢)。如果你想拥有它的时间,只是繁衍的结果与24
谢谢你的答案!我明天会试一下,因为我的电脑只有SQL服务器。再次感谢您的时间和解释〜:) – user3601310 2015-02-09 10:06:59
只是减去两个日期:
select date '2000-01-02' - date '2000-01-01' as dateDiff
from dual;
结果将在几天之差。
更多细节都在手册中:
https://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements001.htm#i48042
谢谢你的答案!我明天会试一下,因为我的电脑只有SQL服务器。再次感谢您的时间n链接〜:) – user3601310 2015-02-09 10:05:45
@ user3601310:什么是'明天coz'? (因为“呕吐”,所以听起来像德语单词......) – 2015-02-09 10:08:51
他的意思是'因为'... – 2016-05-06 11:17:20
可能重复的[2日期之间计算差/中的Oracle SQL倍](http://stackoverflow.com/questions/1096853/calculate-差异在2日期时间在oracle-sql) – Jens 2015-02-09 09:27:50