Sql Trunc数学问题

Sql Trunc数学问题,sql,oracle,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/yyy 我想做的就是计算两个日期之间有多少天。通过使用Trunc(日期)-Trunc(另一个日期

当我使用

select trunc(sysdate) from dual
我得到了正确的日期,今天的格式很好。比如“6/24/2013”

如果我这样做了

select trunc(sysdate)-1 from dual
我昨天的约会安排得很好

但是,如果我这样做:

select trunc(sysdate)- trunc(sysdate-1) from dual
我想得到1,但我得到的是/d/yyy

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

你怎么能这么做

提前感谢。

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

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

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

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

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

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

Oracle有一个days\u between函数:days\u between(date1,date2),因此您的查询可以表示为:

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

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

Oracle有一个days\u between函数:days\u between(date1,date2),因此您的查询可以表示为:

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

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

这是重复的吗?如果我运行您指示在SQLPlus中运行的SQL语句,我得到的结果是
1
。您是否可以编辑您的帖子,以包含SQLPlus会话中的剪切和粘贴,该会话准确显示您正在运行的内容以及您得到的结果。您的查询应该有效并返回1,您是否可以发布您正在使用的实际日期值。如果我运行您指示您正在运行的SQL语句,则得到的结果是
1
。您是否可以编辑您的帖子,以包含SQLPlus会话中的剪切和粘贴,该会话准确显示您正在运行的内容以及您得到的结果。您的查询应该有效并返回1,您是否可以发布您正在使用的实际日期值。手术医生就是这么说的?如果你试一下,效果会好吗?。有没有可能在SQL Fiddle上得到一个失败的例子?OP说他正在这么做?如果你尝试一下,它会正常工作吗?。有没有可能在SQL Fiddle上得到一个失败的例子?我得到了未知的函数dats\u between没有它没有。。。除了RDBMS没有或不需要这个功能。我以前在Oracle中使用过这个功能。这里有一个更详细的链接:这是我链接到的,它不是核心SQL。我不知道函数dats\u在两者之间没有它不。。。除了RDBMS没有或不需要这个功能。我以前在Oracle中使用过这个功能。这里有一个更详细的链接:这是我链接到的,它不是核心SQL。