Oracle间隔1天

问题描述 投票:0回答:2

我想了解两者之间的区别

someDate >= (CURRENT_TIMESTAMP - INTERVAL '1' DAY) 

someDate >= (CURRENT_TIMESTAMP - 1)

因为对我来说似乎相同,但是第二个似乎有更好的表现。

sql oracle datetime timestamp intervals
2个回答
1
投票
唯一的实际区别是CURRENT_TIMESTAMP - 1依赖于Oracle对DATE数据类型执行算术运算并得出新日期的能力,而其他数据库不支持该能力(某些)。

CURRENT_TIMESTAMP - INTERVAL '1' DAY使用间隔数据类型来达到相同的目的。这是标准语法并得到广泛支持。

我希望任何感知到的性能优势彼此之间的错觉都是一种错觉,可能是由“热缓存”效应引起的。如果此说明不适合您,请发布可复制的测试用例。


-1
投票
性能应该相同。简单地说,INTERVAL格式接受Temporal Interval(DAY是其中的一个示例)。但是,当不使用日期添加/减去日期时,Oracle默认将其解释为日期单位。
© www.soinside.com 2019 - 2024. All rights reserved.