您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Oracle选择今天之间的日期

Oracle选择今天之间的日期

假设date_enter一个DATE字段:

Select * From Customer_Rooms CuRo
   Where CuRo.Date_Enter >= trunc(sysdate)
   And CuRo.Date_Enter < trunc(sysdate) + 1;

trunc()认情况下,该功能删除时间部分,因此trunc(sysdate)您可以在今天早晨午夜12点前使用该功能

如果您特别想坚持使用between,而DATE不是TIMESTAMP,则可以执行以下操作:

Select * From Customer_Rooms CuRo
   Where CuRo.Date_Enter between trunc(sysdate)
      And trunc(sysdate) + interval '1' day - interval '1' second;

between是包容性的,因此,如果您不休息一会儿,那么您有可能会在今晚的午夜准确地获取记录;因此,这会生成您在原始查询中寻找的23:59:59时间。但我认为无论如何,使用>=<会更清晰,更明确。

如果您确定无论如何都不能晚于今天的日期,则上限实际上并没有添加任何内容,您将得到与以下相同的结果:

Select * From Customer_Rooms CuRo
   Where CuRo.Date_Enter >= trunc(sysdate);

但是,您不想使用truncto_char在该date_enter列上;使用任何函数都会阻止使用该列上的索引,这就是为什么查询to_char速度太慢的原因。

Oracle 2022/1/1 18:26:13 有386人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶