Help using Base SAS procedures

Yesterdays Date

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 14
Accepted Solution

Yesterdays Date


Hello,  you folks helped me out immensely with figuring out how to turn the date of 1/1/1960 into a real date to be stored in an Oracle table.  I have another question on how to turn that date, which is the CURRENT date, into the PREVIOUS days date.  The following is the code.

*  This gets the current Date.

%let curday=%sysfunc(date(), date9.);

%put &curday;

* This loads the records into an Oracle table.  the date portion  hos_date is the date 7/25/2013 12:01:01 PM.  I want it to be Yesterday's Date of 7/24/2013 12:01:01 PM

proc sql;
insert into safety.safety_hrs_svc

select dhms("&curday"d,12,01,01) as hos_date, STATION, CONTR_ID, CONTR_NAME, PRIM_SVC_AREA_ID, DRIVER_NBR, DRIVER_NAME, PCK_DELV_HRS, SPOT_HRS, LINEHAUL_HRS from work.safety_hrs;
quit;

Thank you very much.


Accepted Solutions
Solution
‎07-25-2013 08:54 AM
Occasional Contributor
Posts: 14

Re: Yesterdays Date

Bruno......... BANG.  YOU NAILED  IT.  Man you're good.   Do you want to fly to Pennsylvania ?   :smileylaugh:

THANKS ALL.... I LUV THIS BOARD

View solution in original post


All Replies
Super Contributor
Posts: 358

Re: Yesterdays Date

Try:

%let preday=%sysfunc(date()-1, date9.);

Occasional Contributor
Posts: 14

Re: Yesterdays Date

OS2, that generates the following error..... cut from the log.

11         %let prevday=%sysfunc(date()-1, date9.);

ERROR: Expected close parenthesis after macro function invocation not found.

Thanks so much for looking.

Super Contributor
Posts: 358

Re: Yesterdays Date

My Bad:

use:

CALL SYMPUT('predte',put(date()-1.date9.));

SAS Super FREQ
Posts: 683

Re: Yesterdays Date

Fleroo


Check this code:
%let curday=%sysfunc(PUTN(%eval(%sysfunc(date()) - 1), date9.));
%put NOTE: &=curday;
Solution
‎07-25-2013 08:54 AM
Occasional Contributor
Posts: 14

Re: Yesterdays Date

Bruno......... BANG.  YOU NAILED  IT.  Man you're good.   Do you want to fly to Pennsylvania ?   :smileylaugh:

THANKS ALL.... I LUV THIS BOARD

Respected Advisor
Posts: 3,124

Re: Yesterdays Date

You can also use INTNX:

%let curday=%sysfunc(intnx(day,%sysfunc(date()), -1),date9.);

%put NOTE: &=curday;

Haikuo

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 6 replies
  • 1066 views
  • 0 likes
  • 4 in conversation