【问题标题】:Automatic date retrieval in SQL querySQL查询中的自动日期检索
【发布时间】:2016-05-18 08:14:20
【问题描述】:

我们目前正在使用 SQL 查询,我们在指定时间内检索当前日期的数据,例如在以下时间戳之间"

to_date('2016-05-10 00:00:00', 'YYYY-MM-DD HH24:MI:SS') 
and 
to_date('2016-05-10 23:59:59','YYYY-MM-DD HH24:MI:SS'

有没有办法自动获取上述日期和时间,而不是每天更改?

【问题讨论】:

  • where trunc(the_column) = trunc(sysdate)?但请注意:这不会使用the_column 上的索引。如果你需要这个,你需要在trunc(the_column)上创建一个索引

标签: sql oracle date datetime


【解决方案1】:

您可以使用SYSDATE 获取当前日期,并使用TRUNC 删除日期的时间部分:

x >= TRUNC( SYSDATE ) AND x < TRUNC( SYSDATE + 1 )

这会得到与TRUNC(x) = TRUNC(SYSDATE) 相同的结果,但允许在x 上使用索引。

正如 a_horse_with_no_name 所评论的,第二个查询将受益于 TRUNC(x) 上的基于函数的索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-11
    • 1970-01-01
    相关资源
    最近更新 更多