Oracle SQL Where子句查找30天以前的日期记录
问题描述:
我想使用记录超过30天的创建日期字段在(Oracle SQL)表中查找记录。使用像>这样的操作符来查找记录会很好,但是如果任何人都可以建议使用快速SQL where子句语句来查找超过30天的记录,那将会很好。请推荐Oracle语法,因为这是我正在使用的。Oracle SQL Where子句查找30天以前的日期记录
答
用途:
SELECT *
FROM YOUR_TABLE
WHERE creation_date <= TRUNC(SYSDATE) - 30
SYSDATE返回的日期&时间; TRUNC将日期重置为截至午夜,因此如果您想要包括当前时间在内的前30天的creation_date
,则可以省略该日期。
根据你的需要,你也可以看看使用ADD_MONTHS:
SELECT *
FROM YOUR_TABLE
WHERE creation_date <= ADD_MONTHS(TRUNC(SYSDATE), -1)
我喜欢'CREATION_DATE 2010-10-05 04:03:20
@be现在在这里:这很好,只要您不介意ORA-01839在某些情况下“指定的月份无效”如果creation_date是3月31日。 – 2010-10-05 04:38:38
嗯,我一直认为'间隔'表达式是为了正确处理这些情况而设计的...... – 2010-10-05 04:57:34