如何计算oracle 11g SQL中两个日期之间的差异

San*_*rla 7 sql oracle11g

当我试图通过使用datediff函数计算日期差异时,它显示无效的标识符.

SELECT DATEDIFF(day,'2008-08-05','2008-06-05') AS DiffDate from da_static_trade.

Error : invalid identifier.
Run Code Online (Sandbox Code Playgroud)

你能告诉我计算日期差异的功能是什么吗?

Mik*_*eev 18

DATEDIFF()Oracle中没有任何功能.在Oracle上,这是一个算术问题

select DATE1-DATE2 from table 
Run Code Online (Sandbox Code Playgroud)

  • 那么如何获得两个日期之间的小时或分钟,而不仅仅是十进制数? (3认同)

Nad*_*_MK 5

Oracle支持-Data数据类型的Mathematical Subtract 运算符.您可以直接在下面的语句中输入select子句:

to_char (s.last_upd – s.created, ‘999999D99?)
Run Code Online (Sandbox Code Playgroud)

检查示例以获得更多可见性.

如果你需要几个小时的输出,那么下面的内容可能有所帮助;

Select to_number(substr(numtodsinterval([END_TIME]-[START_TIME]),’day’,2,9))*24 +
to_number(substr(numtodsinterval([END_TIME]-[START_TIME],’day’),12,2))
||':’||to_number(substr(numtodsinterval([END_TIME]-[START_TIME],’day’),15,2)) 
from [TABLE_NAME];
Run Code Online (Sandbox Code Playgroud)