我想了解两者之间的区别
someDate >= (CURRENT_TIMESTAMP - INTERVAL '1' DAY)
和
someDate >= (CURRENT_TIMESTAMP - 1)
因为对我来说似乎相同,但是第二个似乎有更好的表现。
CURRENT_TIMESTAMP - 1
依赖于Oracle对DATE数据类型执行算术运算并得出新日期的能力,而其他数据库不支持该能力(某些)。 而CURRENT_TIMESTAMP - INTERVAL '1' DAY
使用间隔数据类型来达到相同的目的。这是标准语法并得到广泛支持。
我希望任何感知到的性能优势彼此之间的错觉都是一种错觉,可能是由“热缓存”效应引起的。如果此说明不适合您,请发布可复制的测试用例。
INTERVAL
格式接受Temporal Interval(DAY是其中的一个示例)。但是,当不使用日期添加/减去日期时,Oracle默认将其解释为日期单位。