选择将从今天起的一个月内过期的记录

时间:2017-09-25 07:44:05

标签: sql oracle

我有一个Oracle SQL表,该表的字段是

id
name
date_issued
date_expire

我只想要那些在30天内过期的记录。

3 个答案:

答案 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