我有一个Oracle SQL表,该表的字段是
id
name
date_issued
date_expire
我只想要那些在30天内过期的记录。
答案 0 :(得分:1)
您可以在下面尝试获得所需的结果
select id,name,date_issued,date_expire from yourtable
where date_expire between trunc(sysdate) and trunc(sysdate)+30
答案 1 :(得分:1)
如果您想要从现在起30天内任何时间过期的所有物品,那么:
SELECT *
FROM table_name
WHERE date_expire < TRUNC( SYSDATE ) + INTERVAL '31' DAY;
如果您要排除已过期的项目:
SELECT *
FROM table_name
WHERE date_expire < TRUNC( SYSDATE ) + INTERVAL '31' DAY
AND date_expire >= SYSDATE;
如果您想排除今天之前过期的项目,请:
SELECT *
FROM table_name
WHERE date_expire < TRUNC( SYSDATE ) + INTERVAL '31' DAY
AND date_expire >= TRUNC( SYSDATE );
如果您想将30天计为今天和接下来的29天,请将INTERVAL '31' DAY
更改为INTERVAL '30' DAY
。
答案 2 :(得分:0)
如果您希望到期30天:
select * from yourtable
where trunc(date_expire) = trunc(sysdate)+30