DATA Step, Macro, Functions and more

Convert Data string to Date String MONYY7.

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 19
Accepted Solution

Convert Data string to Date String MONYY7.

I am running the code below.  I added the sysdate to my first 2 tables.  The sysdate keeps coming out as a character string.  I would like to change it to a date string and only display the month and year (MONYY7.)  Can anyone please assist me with modifiying my current code or adding a data step to convert the character string to a date string and display month and year only. ex the date right now is diplayed as 09JAN15 which is formated as CHAR7.  I would like to display the date as JAN2015.


Thank you,

PROC SQL;
CREATE TABLE work.mobpp1 AS
SELECT DISTINCT soc, feature_code, rate,
    datepart(effective_date)format=mmddyy10. AS effective_date,
    datepart(sys_creation_date)format=mmddyy10. AS sys_creation_date,
    datepart(expiration_date)format=mmddyy10. AS expiration_date,
    "&sysdate" as Extract_Date
FROM bmlrwork.pp_rc_rate
WHERE expiration_date =.;
QUIT;


DATA work.mobpp1;
INPUT Extract_Date $7.;
FMTExtract_Date= INPUT(Extract_Date,monyy7.);
RUN;

PROC SQL;
CREATE TABLE work.mobpp2 AS
SELECT DISTINCT soc, soc_description, product_type, "&sysdate" AS Extract_Date
FROM bmlrwork.soc
WHERE expiration_date =.;
QUIT;


PROC SQL;
CREATE TABLE work.mobpp3 AS
SELECT DISTINCT t1.soc, t1.feature_code, t1.rate, t1.effective_date, t1.sys_creation_date, t1.expiration_date,
    t2.soc_description, t2.product_type, t2.Extract_Date
FROM work.mobpp1 AS t1
LEFT JOIN work.mobpp2 AS t2
ON t1.soc = t2.soc;
QUIT;

Message was edited by: Giuliano Filoso


Accepted Solutions
Solution
‎01-09-2015 02:41 PM
Super Contributor
Posts: 305

Re: Convert Data string to Date String MONYY7.

hello,

just add d after your sysdate variable and you will have the corresponding numeric sas vaue which can be formatted at your will.

PROC SQL;

CREATE TABLE work.mobpp1 AS

SELECT DISTINCT soc, feature_code, rate,

    datepart(effective_date)format=mmddyy10. AS effective_date,

    datepart(sys_creation_date)format=mmddyy10. AS sys_creation_date,

    datepart(expiration_date)format=mmddyy10. AS expiration_date,

    "&sysdate"d as Extract_Date

FROM bmlrwork.pp_rc_rate

WHERE expiration_date =.;

QUIT;

View solution in original post


All Replies
Respected Advisor
Posts: 3,124

Re: Convert Data string to Date String MONYY7.

Replace

"&sysdate" AS Extract_Date

with

input("&sysdate.", date9.) AS Extract_Date  format=monyy7.

BTW, if what you want is Today's date, then using date() or today() maybe more straightforward.

date()   AS Extract_Date  format=monyy7.


Solution
‎01-09-2015 02:41 PM
Super Contributor
Posts: 305

Re: Convert Data string to Date String MONYY7.

hello,

just add d after your sysdate variable and you will have the corresponding numeric sas vaue which can be formatted at your will.

PROC SQL;

CREATE TABLE work.mobpp1 AS

SELECT DISTINCT soc, feature_code, rate,

    datepart(effective_date)format=mmddyy10. AS effective_date,

    datepart(sys_creation_date)format=mmddyy10. AS sys_creation_date,

    datepart(expiration_date)format=mmddyy10. AS expiration_date,

    "&sysdate"d as Extract_Date

FROM bmlrwork.pp_rc_rate

WHERE expiration_date =.;

QUIT;

☑ This topic is solved.

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

Discussion stats
  • 2 replies
  • 1606 views
  • 3 likes
  • 3 in conversation