这些oracle查询之间有什么区别吗?

时间:2013-03-21 09:43:45

标签: oracle

我有两个oracle查询

1)在sysdate + 7和sysdate

之间创建了create_dt

2)sysdate和sysdate + 7之间的created_dt

这两个查询会给出相同的结果吗?

2 个答案:

答案 0 :(得分:2)

第一个永远不会返回任何行。

你可以考虑之间的

where col between A and B

相同
where col >= A and col <= B

所以你的第一个是不合逻辑的

created_dt >= sysdate+7 and created_dt <= sysdate

这两种情况永远不会成真。

答案 1 :(得分:1)

在SQL中,构造x BETWEEN a AND b等同于a <= x AND x <= b

显然,如果a > b,这个约束将产生空结果。

换句话说,交换间隔结束确实很重要:首先必须小于或等于第二个。