Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Oracle日期比较_Sql_Oracle10g - Fatal编程技术网

Sql Oracle日期比较

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是一个日期字段,而不是日期/时间数据类型 两

假设我有以下代码

一些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是一个日期字段,而不是日期/时间数据类型

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

--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时,它会返回相同数量的行。所以现在我明白了这两个都是真的,很好。如果你觉得是这样的话,请随意标记为已回答。如果该字段只是一个日期,那么你给出的代码就可以正常工作。