oracle 在SAS PROC SQL中获取特定月份之间的数据

goqiplq2  于 2023-06-22  发布在  Oracle
关注(0)|答案(2)|浏览(186)

我有一个数据集,其中日期是20-JUN-23格式。我想过滤数据,以便可以获得2023年3月1日至2023年4月30日之间的所有数据。如果当前月份是6,那么我想要的数据之间的第三和第四个月。当我们进入七月(第七个月),我想要四月(第四个月)和五月(第五个月)之间的数据,等等。基本上,每当我运行代码时,它都会给我当前月份之前3到2个月的数据。我正在使用SAS PROC SQL(SQL是Oracle的问题)。

am46iovg

am46iovg1#

SAS解决方案使用INTNX,并假设您的日期是SAS日期格式(数字日期格式)的变量。

proc sql;
create table want as
select * 
from have
where date between intnx('month', date, -3, 'b') and intnx('month', date, -2, 'e');
quit;
emeijp43

emeijp432#

在Oracle SQL中,您可以将当前日期TRUNC设置为月初,然后使用ADD_MONTHS返回几个月以指定日期范围:

SELECT *
FROM   table_name
WHERE  date_column >= ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -3)
AND    date_column <  ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -1)

相关问题