2
回答
sql文中为什么总是trunc(date+0.9999)而不是trunc(date+1)
华为云实践训练营,热门技术免费实践!>>>   
今天在查看sql文时发现这样一段代码  “EXPIRED_TIME=TRUNC(SYSDATE+VALID_DAYS) + 0.99999,” ,请问这和“EXPIRED_TIME=TRUNC(SYSDATE+VALID_DAYS) + 1,” 有什么区别????
举报
menxin
发帖于4年前 2回/329阅
共有2个答案 最后回答: 4年前

其实吧,就相当于:一个什么有效是当天有效。+1的话就是从第一天的0:00 000到第二天的0:00 000(这样就变成第二天),而家0.99999就是从第一天的0:00 000到第一天的23:59 XXX(可以肯定没有变为第二天)。

不过要说明的是这个写法也有一些问题的。

引用来自“dbtop”的答案

其实吧,就相当于:一个什么有效是当天有效。+1的话就是从第一天的0:00 000到第二天的0:00 000(这样就变成第二天),而家0.99999就是从第一天的0:00 000到第一天的23:59 XXX(可以肯定没有变为第二天)。

不过要说明的是这个写法也有一些问题的。

感觉有点道理,应该是写代码的人对时间掌握的不好,怕出岔子,就搞了这么个写法。

也有可能是时间交接点计算方式需要,也就是“小于和小于等于的关系”,1号到2号,时间截止点的问题。1-2号,到底包不包括0点这个时刻呢呢?

顶部