I followed "Convert Character variable / string YYYYMM in date" solved discussion and entered the following code:
PROC SQL;
CREATE TABLE WORK.QUERY_FOR_COMBINED_PANDG_MONTHLY AS
SELECT /* interval */
(input(t1.yr_mnth !! "01",yymmdd8.)) FORMAT=YYMMDD8. LABEL="interval" AS interval
FROM PLCP.COMBINED_PANDG_MONTHLY_VOLUMES t1;
QUIT;
However, the results came back as dot (.). Not sure what I did wrong. Any help will be greatly appreciated.
Thanks,
Greg
Either your variable is defined as longer than 6 characters, or it does not have full 6 digits. Or perhaps it is a number instead of a string? In which case it will get converted using the BEST12 format and so have 6 leading spaces before the 6 digit number.
You could use the CATS() function to insure the trailing and/or leading spaces are removed.
input(cats(t1.yr_mnth,"01"),yymmdd8.)
Either your variable is defined as longer than 6 characters, or it does not have full 6 digits. Or perhaps it is a number instead of a string? In which case it will get converted using the BEST12 format and so have 6 leading spaces before the 6 digit number.
You could use the CATS() function to insure the trailing and/or leading spaces are removed.
input(cats(t1.yr_mnth,"01"),yymmdd8.)
Thanks Tom, I just tried your code and it worked perfectly. I appreciate your help and continue to learn.
Greg
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
Check out this tutorial series to learn how to build your own steps in SAS Studio.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.