Sql Trunc Math问题

时间:2013-06-24 20:17:15

标签: sql oracle

当我使用

select trunc(sysdate) from dual

我今天得到了正确的日期格式。喜欢“6/24/2013”​​

如果我这样做

select trunc(sysdate)-1 from dual

我昨天的日期格式很好。

但是,如果我这样做:

select trunc(sysdate)- trunc(sysdate-1) from dual

我想得到1,但我得到的是 / d / yyyy

我想做的就是计算两个日期之间的天数。通过使用 Trunc(日期) - Trunc(另一个日期),,我总是得到 / d / yyyy ,而不是这两个日期之间的日子。

怎么做?

提前致谢。

2 个答案:

答案 0 :(得分:1)

Oracle有一个days_between函数:DAYS_BETWEEN(date1,date2),因此您的查询可以表示为:

select abs(days_between(trunc(sysdate),trunc(sysdate-1))) from dual

我已经包含了abs()函数,因为我不记得最近的日期应该是第一个还是第二个才能得到肯定的结果而且现在无法检查。

答案 1 :(得分:0)

只需使用减号( - )Oracle将日期存储为数字,1 = 1天

所以sysdate + 1是明天,sysdate - 1是昨天

从SQL小提琴 TRUNC(SYSDATE)-TRUNC(SYSDATE-1) 1