减去日期并仅在SQL中显示整数

时间:2018-03-06 18:27:56

标签: sql date time formatting subtraction

我试图找到两个日期之间的日差,当我写:'select date_trunc('day',timetable.time) - date_released as no_days'时,我得到的结果显示如下:“0年0月3日16小时38分28.00秒“。我只想看'3'或'3天'。有没有办法消除年,月,小时,分钟,秒?我在Mode Analytics中运行此查询,如果这会改变任何内容......

3 个答案:

答案 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>