我有两个 oracle 查询
1) created_dt 在 sysdate+7 和 sysdate 之间
2) sysdate 和 sysdate+7 之间的 created_dt
这两个查询会给出相同的结果吗?
我有两个 oracle 查询
1) created_dt 在 sysdate+7 和 sysdate 之间
2) sysdate 和 sysdate+7 之间的 created_dt
这两个查询会给出相同的结果吗?
第一个永远不会返回任何行。
你可以考虑一个介于
where col between A and B
与
where col >= A and col <= B
所以你的第一个是不合逻辑的
created_dt >= sysdate+7 and created_dt <= sysdate
这两个条件永远都不成立。
在 SQL 中,构造x BETWEEN a AND b
等价于a <= x AND x <= b
.
显然,如果a > b
,此约束将产生空结果。
换句话说,交换间隔结束确实很重要:first 必须小于或等于 second。