Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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 比较日期时,相同的工作查询不起作用_Sql_Oracle_Oracle Sqldeveloper - Fatal编程技术网

Sql 比较日期时,相同的工作查询不起作用

Sql 比较日期时,相同的工作查询不起作用,sql,oracle,oracle-sqldeveloper,Sql,Oracle,Oracle Sqldeveloper,我有这个: where (trunc(my_date) >= (trunc(to_date('06/03/2020','MM/DD/YYYY')) + INTERVAL '13:00:00' HOUR TO SECOND)) AND (trunc(my_date) < (trunc(to_date('06/03/2020','MM/DD/YYYY')) + INTERVAL '15:00:00' HOUR TO SECOND)) 奇怪的是,底部的部分按照预期工作

我有这个:

where
    (trunc(my_date) >= (trunc(to_date('06/03/2020','MM/DD/YYYY')) + INTERVAL '13:00:00' HOUR TO SECOND))
  AND
    (trunc(my_date) < (trunc(to_date('06/03/2020','MM/DD/YYYY')) + INTERVAL '15:00:00' HOUR TO SECOND))
奇怪的是,底部的部分按照预期工作,而顶部的部分却没有

我试图得到这个值:2020-06-03 13:42:31.862930

有趣的是,如果我将和上方的一个更改为2020年2月6日,它将包括。。。
这是怎么回事?

您的日期可能是计算日期吗?

您的日期可能是计算日期吗?

删除trunc功能:

SQL> select * from t;

MY_DATE
---------------------------------------------------------------------------
2020-06-03 13:42:31.862930


SQL> select trunc(my_date) from t;

TRUNC(MY_DATE)
-------------------
2020-06-03 00:00:00


SQL> --
SQL> select * from t
  2  where
  3      ((my_date) >= (trunc(to_date('06/03/2020','MM/DD/YYYY')) + INTERVAL '13:00:00' HOUR TO SECOND))
  4    AND
  5      ((my_date) < (trunc(to_date('06/03/2020','MM/DD/YYYY')) + INTERVAL '15:00:00' HOUR TO SECOND))
  6  ;

MY_DATE
---------------------------------------------------------------------------
2020-06-03 13:42:31.862930
删除trunc功能:

SQL> select * from t;

MY_DATE
---------------------------------------------------------------------------
2020-06-03 13:42:31.862930


SQL> select trunc(my_date) from t;

TRUNC(MY_DATE)
-------------------
2020-06-03 00:00:00


SQL> --
SQL> select * from t
  2  where
  3      ((my_date) >= (trunc(to_date('06/03/2020','MM/DD/YYYY')) + INTERVAL '13:00:00' HOUR TO SECOND))
  4    AND
  5      ((my_date) < (trunc(to_date('06/03/2020','MM/DD/YYYY')) + INTERVAL '15:00:00' HOUR TO SECOND))
  6  ;

MY_DATE
---------------------------------------------------------------------------
2020-06-03 13:42:31.862930

你有两种可能

与时间分量的比较-然后使用此表达式

my_date  < (to_date('06/03/2020','MM/DD/YYYY') + INTERVAL '15:00:00' HOUR TO SECOND)
trunc(my_date) <  trunc(to_date('06/03/2020','MM/DD/YYYY')
B不带时间分量的比较,即截断-然后使用此表达式

my_date  < (to_date('06/03/2020','MM/DD/YYYY') + INTERVAL '15:00:00' HOUR TO SECOND)
trunc(my_date) <  trunc(to_date('06/03/2020','MM/DD/YYYY')

您的组合无法为我提供解释

您有两种可能性

与时间分量的比较-然后使用此表达式

my_date  < (to_date('06/03/2020','MM/DD/YYYY') + INTERVAL '15:00:00' HOUR TO SECOND)
trunc(my_date) <  trunc(to_date('06/03/2020','MM/DD/YYYY')
B不带时间分量的比较,即截断-然后使用此表达式

my_date  < (to_date('06/03/2020','MM/DD/YYYY') + INTERVAL '15:00:00' HOUR TO SECOND)
trunc(my_date) <  trunc(to_date('06/03/2020','MM/DD/YYYY')

您的组合无法为我解释

我的日期数据类型是什么?@pifor给我一点时间,让我解释一下check@piforTimestamp6我的日期数据类型是什么?@pifor给我一点时间,让我check@pifor什么意思?什么意思?不截断日期安全吗?这完全取决于你想做什么。但是对于这个查询,您不需要截断日期。如果你有时间戳6,它也代表小时、分钟、秒和更多——不仅仅是年、日和月。不截断日期安全吗?这取决于你想做什么。但是对于这个查询,您不需要截断日期。如果你有时间戳6,它也代表小时、分钟、秒和更多,而不仅仅是年、日和月。