我试图找到两个日期之间的日差,当我写:'select date_trunc('day',timetable.time) - date_released as no_days'时,我得到的结果显示如下:“0年0月3日16小时38分28.00秒“。我只想看'3'或'3天'。有没有办法消除年,月,小时,分钟,秒?我在Mode Analytics中运行此查询,如果这会改变任何内容......
答案 0 :(得分:0)
在甲骨文,地板是你的朋友。
select sysdate - {ts '2017-08-01 15:30:00'} c
from dual
返回216.921412037037037037037037037037037037
而
select floor(sysdate - {ts '2017-08-01 15:30:00'}) c
from dual
返回216
答案 1 :(得分:0)
在T-SQL for Sql Server中,标准的约会功能最简单。
试试这个: 选择DATEDIFF(DAY,' 01/01/2009',GETDATE())
返回从2009年1月1日到今天之间的天数。
如果是Oracle,则DateDiff语法大致相同:
DATEDIFF(表达式1,表达式2)
DATEDIFF()返回expr1 - expr2,表示为从一个日期到另一个日期的天数值。
HTH, 肖恩
答案 2 :(得分:0)
据我所知,在Oracle中,两个DATE值的差异导致天数,所以 - 只需减去它们并删除小数点后面的所有内容(这将是TRUNC)。例如:
SQL> select
2 sysdate,
3 sysdate - to_date('01.03.2018 21:00', 'dd.mm.yyyy hh24:mi') diff,
4 trunc(sysdate - to_date('01.03.2018 21:00', 'dd.mm.yyyy hh24:mi')) result
5 from dual;
SYSDATE DIFF RESULT
------------------- ---------- ----------
06.03.2018 21:20:35 5,01429398 5
SQL>