View previous topic :: View next topic
|
Author |
Message |
hikaps14
Active User
Joined: 02 Sep 2005 Posts: 189 Location: Noida
|
|
|
|
Hi ,
I am using the following piece of code to extract the creation date of the dataset :
DATA ONE;
INFILE TESTGDG JFCB=JFCB;
BYTE81 = SUBSTR(JFCB,81,1) ;
CREATL = PUT(INPUT(BYTE81,PD1.),$2.) ;
BYTE82 = SUBSTR(JFCB,82,2) ;
CREAT2 = PUT(INPUT(BYTE82,IB2.),$3.) ;
CREATED = PUT(DATEJUL(INPUT(CREATL || CREAT2,5.)),MMDDYY10.);
PROC PRINT;
RUN;
The problem is
this code works fine if the dataset is created in 2006
but when I run this job on datasets created in 2007 this doesnot works
What I analysed is that its not able to extract year part correctly.
CREATL = ' -6 '
Actually I am a novice in SAS so I am not able to get why this output is coming.
Can any one help ?
Thanks,
-Kapil. |
|
Back to top |
|
|
Alan Voss
New User
Joined: 29 Nov 2006 Posts: 32 Location: Jacksonville, FL
|
|
|
|
The following works for me.
DATA XX;
INFILE COMH JFCB=JFCB;
CRJULIANYR = INPUT(SUBSTR(JFCB, 81,1),PIB1.)+1900;
CRJULIANDAY = INPUT(SUBSTR(JFCB, 82,2),PIB2.);
CRDATE = DATEJUL(CRJULIANYR*1000+CRJULIANDAY);
DROP CRJULIANYR CRJULIANDAY; |
|
Back to top |
|
|
hikaps14
Active User
Joined: 02 Sep 2005 Posts: 189 Location: Noida
|
|
|
|
Hi Alan,
I did run ur SAS and got the following output :
Obs CRJULIANYR CRJULIANDAY CRDATE
1 2007 48 17214
The final date is not getting calculated properly, where as the individual day and year part are doing well.
Thanks,
-Kapil. |
|
Back to top |
|
|
hikaps14
Active User
Joined: 02 Sep 2005 Posts: 189 Location: Noida
|
|
|
|
I think I got it.
I converted the output to MMDDYY10.
and its working now .
Thanks,
-kapil. |
|
Back to top |
|
|
Alan Voss
New User
Joined: 29 Nov 2006 Posts: 32 Location: Jacksonville, FL
|
|
|
|
One final piece of advice, since, by your own admission, you are a SAS novice.
Get really familiar with SAS dates, times, and datetimes. These are all numeric values and therefore, without formatting, may look unusual. However, once you learn how to display them and understand how to use the SAS functions for working with them, you will come to appreciate their simplicity and utility.
Al |
|
Back to top |
|
|
|