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

gwbalxhn  于 2021-07-29  发布在  Java
关注(0)|答案(3)|浏览(452)

我有这个:

  1. where
  2. (trunc(my_date) >= (trunc(to_date('06/03/2020','MM/DD/YYYY')) + INTERVAL '13:00:00' HOUR TO SECOND))
  3. AND
  4. (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 有趣的是,如果我把上面的那个换了 AND06/02/2020 ,包括。。。这是怎么回事?

igetnqfo

igetnqfo1#

删除trunc函数:

  1. SQL> select * from t;
  2. MY_DATE
  3. ---------------------------------------------------------------------------
  4. 2020-06-03 13:42:31.862930
  5. SQL> select trunc(my_date) from t;
  6. TRUNC(MY_DATE)
  7. -------------------
  8. 2020-06-03 00:00:00
  9. SQL> --
  10. SQL> select * from t
  11. 2 where
  12. 3 ((my_date) >= (trunc(to_date('06/03/2020','MM/DD/YYYY')) + INTERVAL '13:00:00' HOUR TO SECOND))
  13. 4 AND
  14. 5 ((my_date) < (trunc(to_date('06/03/2020','MM/DD/YYYY')) + INTERVAL '15:00:00' HOUR TO SECOND))
  15. 6 ;
  16. MY_DATE
  17. ---------------------------------------------------------------------------
  18. 2020-06-03 13:42:31.862930
展开查看全部
tzxcd3kk

tzxcd3kk2#

你的约会可能是经过计算的吗?

brvekthn

brvekthn3#

你有两种可能
a) 与时间分量比较-然后使用此表达式

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

b) 不带时间成分的比较(即截断)-然后使用此表达式

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

你的组合对我没有解释力

相关问题