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

Same working query doesn't work when comparing dates

我有这个:

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

有趣的是,如果我将 AND 上方的那个更改为 06/02/2020,它会包含它... 这是怎么回事?

有没有可能你的日期是计算出来的日期?

删除截断函数:

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

你有两种可能

A​​) 比较与时间分量 - 然后使用这个表达式

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

B) 比较没有时间成分(即截断)——然后使用这个表达式

trunc(my_date) <  trunc(to_date('06/03/2020','MM/DD/YYYY')

你的组合对我没有解释