Oracle SQL Where子句用于查找超过30天的日期记录

anw*_*rma 31 sql oracle date-arithmetic

我想使用创建日期字段在(Oracle SQL)表中查找记录,其中记录超过30天.使用像>之类的运算符查找记录会很好,但是如果有人可以建议使用快速SQL where子句语句来查找超过30天的记录,这将是很好的.请建议Oracle语法,因为我正在使用它.

OMG*_*ies 55

使用:

SELECT *
  FROM YOUR_TABLE
 WHERE creation_date <= TRUNC(SYSDATE) - 30
Run Code Online (Sandbox Code Playgroud)

SYSDATE返回日期和时间; TRUNC将日期重置为截至午夜,因此如果您想要creation_date包含当前时间的30天,则可以省略它.

根据您的需要,您还可以查看使用ADD_MONTHS:

SELECT *
  FROM YOUR_TABLE
 WHERE creation_date <= ADD_MONTHS(TRUNC(SYSDATE), -1)
Run Code Online (Sandbox Code Playgroud)

  • 我更喜欢`creation_date <= TRUNC(SYSDATE) - 间隔'1'月`:) (3认同)
  • @be在这里:没关系,只要你不介意它是否因为ORA-01839"日期在指定的月份无效",在某些情况下,例如如果creation_date是3月31日. (3认同)
  • 正如伦敦人所说,这有点"小马",不是吗? (2认同)