I am trying to import a pipe '|' delimited text file in SAS using PROC IMPORT. Though I am able to get most of the variable values except the date variable having value as '2020-07-14 11:00 EDT'. Please guide on how to handle this data.
Also please guide on various must use options while importing a text file so that no variables or values get missed out.
Thanks
> please guide on various must use options while importing a text file so that no variables or values get missed out.
This means not using proc import, but rather using a data step and an INFILE statement.
This will also allow you to process the date and time correctly.
Many resources on the web such as since one https://support.sas.com/techsup/technote/ts673.pdf
Please help by specifying the format and informat for the date value 2020-07-14 11:00 EDT (YYYY-MM-DD HH:MM ZONE)
See this:
proc format;
invalue ustz
"AST" = 14400 /* ATLANTIC STANDARD TIME UTC - 4 */
"EST" = 18000 /* EASTERN STANDARD TIME UTC - 5 */
"EDT" = 14400 /* EASTERN DAYLIGHT TIME UTC - 4 */
"CST" = 21600 /* CENTRAL STANDARD TIME UTC - 6 */
"CDT" = 18000 /* CENTRAL DAYLIGHT TIME UTC - 5 */
"MST" = 25200 /* MOUNTAIN STANDARD TIME UTC - 7 */
"MDT" = 21600 /* MOUNTAIN DAYLIGHT TIME UTC - 6 */
"PST" = 28800 /* PACIFIC STANDARD TIME UTC - 8 */
"PDT" = 25200 /* PACIFIC DAYLIGHT TIME UTC - 7 */
"AKST" = 32400 /* ALASKA TIME UTC - 9 */
"AKDT" = 28800 /* ALASKA DAYLIGHT TIME UTC - 8 */
"HST" = 36000 /* HAWAII STANDARD TIME UTC - 10 */
"HAST" = 36000 /* HAWAII-ALEUTIAN STANDARD TIME UTC - 10 */
"HADT" = 32400 /* HAWAII-ALEUTIAN DAYLIGHT TIME UTC - 9 */
"SST" = 39600 /* SAMOA STANDARD TIME UTC - 11 */
"SDT" = 36000 /* SAMOA DAYLIGHT TIME UTC - 10 */
"CHST" = -36000 /* CHAMORRO STANDARD TIME UTC +10 */
other = 0
;
data want;
infile datalines;
input dttime e8601dt16. zone :$4.;
format dttime e8601dt19.;
dttime = dttime + input(zone,ustz.);
drop zone;
datalines;
2020-07-14 11:00 EDT
;
The result will be the datetime in UTC.
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.