Sql Oracle日期比较
假设我有以下代码 一些Sql查询。。。然后是这个条件Sql Oracle日期比较,sql,oracle10g,Sql,Oracle10g,假设我有以下代码 一些Sql查询。。。然后是这个条件 AND EndDate < TO_DATE('02/14/2011','MM/DD/YY')+1 它和我的一样吗 AND EndDate <= TO_DATE('02/14/2011','MM/DD/YY') 取决于EndDate是日期时间还是仅是日期。如果EndDate=2/14/2011 3:00:00,则第二个为假,但第一个为真。注意:根据您的截止日期格式,我假设EndDate是一个日期字段,而不是日期/时间数据类型 两
AND EndDate < TO_DATE('02/14/2011','MM/DD/YY')+1
它和我的一样吗
AND EndDate <= TO_DATE('02/14/2011','MM/DD/YY')
取决于EndDate是日期时间还是仅是日期。如果EndDate=2/14/2011 3:00:00,则第二个为假,但第一个为真。注意:根据您的截止日期格式,我假设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')
这两个结果都是正确的。你有什么疑问 当我尝试第一个的时候,我得到了2766行或者其他的东西。当我尝试第二个的时候,我得到了2300行或者其他的东西。如果它等于相同的条件,那么它不应该返回相同的行集吗?您是否符合其他条件?在查询中围绕endDate换行TRUNC时会发生什么?返回多少行?CJ-当我使用Trunc时,它会返回相同数量的行。所以现在我明白了这两个都是真的,很好。如果你觉得是这样的话,请随意标记为已回答。如果该字段只是一个日期,那么你给出的代码就可以正常工作。