Oracle日期比较

时间:2011-05-31 16:15:39

标签: sql oracle10g

说我有以下代码

某些Sql查询...后面跟着这个条件

AND EndDate < TO_DATE('02/14/2011','MM/DD/YY')+1

相同吗?
AND EndDate <= TO_DATE('02/14/2011','MM/DD/YY')

2 个答案:

答案 0 :(得分:6)

注意:我假设您的to_date格式是EndDate是日期字段而不是日期/时间数据类型。

两个查询都应返回相同的结果集。请考虑以下事项:

--Substitue "EndDate" for SYSDATE for this exercise

-- Does "EndDate" occur before June 01, 2011? (Yes)
SELECT 'TRUE'
FROM DUAL
WHERE  TRUNC(SYSDATE) < TO_DATE('05/31/2011','MM/DD/YY')+1

-- Does "EndDate" occur on or before May 31, 2011? (Yes)
SELECT 'TRUE'
FROM DUAL
WHERE  TRUNC(SYSDATE) <= TO_DATE('05/31/2011','MM/DD/YY')

两个结果都会产生“TRUE”。你有什么疑惑?

答案 1 :(得分:2)

取决于EndDate是DateTime还是仅仅是Date。如果EndDate = 2/14/2011 3:00:00,则第二个将为false,但第一个为true。