【问题标题】:oracle sql date not later than todayoracle sql日期不迟于今天
【发布时间】:2012-08-20 23:05:53
【问题描述】:

我需要显示一些数据,如果它是 - 新数据 - 更新数据 比方说,我将基于发布日期列和更新列中的这些数据,其中发布日期和更新日期都是时间戳? .那么如果是新日期,如何计算日期呢?

【问题讨论】:

  • 不清楚你想要什么。你能描述得更好吗?
  • 我有一个发布日期列,我想显示当天发布的数据,而不是昨天或更早发布的数据

标签: sql oracle logic


【解决方案1】:

过去 24 小时:

Where publish_date >= sysdate -1

或今天任何时候(午夜前)

where publish_date >= trunc(sysdate)

如果这是一张大表,我假设您在 publish_date 上有一个索引。如果你使用 trunc(publish_date),它可能无法使用索引(未经测试,但运行一个解释计划以确保)。

【讨论】:

  • sysdate -1 ...不错:D
【解决方案2】:

试试这个

Where TRUNC(sysdate) = TRUNC(publish_date)

sysdate 返回今天的日期和时间。 TRUNC 去掉了时间部分

【讨论】:

  • 我不想破坏 -1,但正如 @tbone 解释的那样,在这种情况下使用 TRUNC(publish_date) 可能是一个坏主意和性能杀手
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-10
  • 2014-09-24
  • 2014-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-29
相关资源
最近更新 更多