Good evening,
The code below is producing missing values for all values of the Rec_Date variable. This is running on 9.2 in UNIX.
Sample data appears as follows:
"First ID","Second ID","Name","Rec Date"
"121","012","Martin","2015/12/22 00:00:00"
"1956","056","Breida","2015/11/22 00:00:00"
Can someone help me understand what I'm missing?
Thanks!
data control;
length
first_ID $20
second_ID $20
name $50;
infile control dsd missover firstobs=2;
input
first_ID $
second_ID $
name $
Rec_Date anydtdtm.;
run;
Maybe the problem is that csv file is created under Windows, while you are importing it via Unix . They have different terminator character of line .
data control;
infile '/folders/myfolders/temp.txt' dsd truncover firstobs=2 termstr=crlf;
input
first_ID : $20.
second_ID : $20.
name : $50.
Rec_Date : anydtdtm.;
run;
Could you try to change the informat used for reading the datetime like below , i used the colon (:) and the informat to anydtdtm20. .
data control;
length
first_ID $20
second_ID $20
name $50;
infile control dsd missover firstobs=2;
input
first_ID $
second_ID $
name $
Rec_Date : anydtdtm20.;
run;
Maybe the problem is that csv file is created under Windows, while you are importing it via Unix . They have different terminator character of line .
data control;
infile '/folders/myfolders/temp.txt' dsd truncover firstobs=2 termstr=crlf;
input
first_ID : $20.
second_ID : $20.
name : $50.
Rec_Date : anydtdtm.;
run;
Thanks Ksharp! That is exactly what the issue was. Apparently UNIX uses a "LF" to terminate the line while files created in Windows have the "CRLF". Once I specified that the terminator characater is "CRLF", the file read the date without issue.
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.
Ready to level-up your skills? Choose your own adventure.