2

我有两个 oracle 查询

1) created_dt 在 sysdate+7 和 sysdate 之间

2) sysdate 和 sysdate+7 之间的 created_dt

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

4

2 回答 2

2

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

你可以考虑一个介于

where col between A and B

where col >= A and col <= B

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

created_dt >= sysdate+7 and created_dt <= sysdate

这两个条件永远都不成立。

于 2013-03-21T09:50:50.537 回答
1

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

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

换句话说,交换间隔结束确实很重要:first 必须小于或等于 second。

于 2013-03-21T09:51:06.067 回答