BookmarkSubscribeRSS Feed
SASAna
Quartz | Level 8

Hi SAS users,

 

I need help with date filters. I created test1 and using those paid dates for test2 dataset where conditions.

 

proc sql;
create table test1 as
select service_date ,
datepart(service_date) FORMAT YYMMDDD10. as fdos,
datepart(paid_date) FORMAT YYMMDDD10. as paid
from
test;
Quit;

 

proc sql;
create table test2 as
select
*
from test1
where paid between '2019-05-01' and '2020-04-30'    ( need help here how to get paid into character format )
;
Quit;

 

Thanks,

Ana

1 REPLY 1
PaigeMiller
Diamond | Level 26

@SASAna wrote:

Hi SAS users,

 

I need help with date filters. I created test1 and using those paid dates for test2 dataset where conditions.

 

proc sql;
create table test1 as
select service_date ,
datepart(service_date) FORMAT YYMMDDD10. as fdos,
datepart(paid_date) FORMAT YYMMDDD10. as paid
from
test;
Quit;

 

proc sql;
create table test2 as
select
*
from test1
where paid between '2019-05-01' and '2020-04-30'    ( need help here how to get paid into character format )
;
Quit;

 


I believe you simply need to change the WHERE clause

 

where paid between '01MAY2019'd and '30APR2020'd

Formats applied to the variable PAID are irrelevant here — if you have a numeric date variable (which PAID is), they can be formatted with any date format you want, it is completely irrelevant to the WHERE clause because when SAS does the comparisons, it uses the unformatted date number. To determine if it is between two dates that you want to hard code, then you must use the formatting of '01MAY2019'd and no other formatting (except that the letters can be either upper or lower case, and you can usually get away with using 2 digit years).

 

You can combine your two PROC SQL blocks into a single call to PROC SQL

proc sql;
create table test1 as
select service_date ,
datepart(service_date) FORMAT YYMMDDD10. as fdos,
datepart(paid_date) FORMAT YYMMDDD10. as paid
from test 
where datepart(paid_date) between '01MAY2019'd and '30APR2020'd;
quit;

 

--
Paige Miller

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 462 views
  • 1 like
  • 2 in conversation