BookmarkSubscribeRSS Feed
BrahmanandaRao
Lapis Lazuli | Level 10
data ds;
input company $ manufac_date $ mmddyy10. ;
format manufac_date mmddyy10.;
datalines;
Hynduai 24Oct2001
Maruthi 12Mar2008
scoda   02Aug2007
Tata    16Jun2020
;
run;

data ds1;
set ds;
Years=intck('Year',manufac_date,today());
Months=intck('Month',manufac_date,today());
Days=intck('Day',manufac_date,today());
format Years  Months Days manufac_date today mmddyy10.;
proc print;
run;



I want vehicle manufacture information till today 

9 REPLIES 9
Kurt_Bremser
Super User

BTW since dates are counts of days (a fact you know quite well by now), the last function call is unnecessary and can be replaced by a simple subtraction:

days = today() - manufac_date;

which will be slightly faster.

BrahmanandaRao
Lapis Lazuli | Level 10
data ds1;
set ds;
days = today() - manufac_date;
Years=intck('Year',manufac_date,today()); 
 Months=intck('Month',manufac_date,today()); 
/* Days=intck('Day',manufac_date,today()); */
 format Years  Months Days manufac_date today mmddyy10.; 
proc print;
run;

I got output like this

 

Anandkvn_0-1625908895802.png

 

PaigeMiller
Diamond | Level 26

By now, @BrahmanandaRao , you should know you need dates to be numeric if you are going to do mathematical calculations (such as, in your case, subtraction). In your data set, your variable MANUFAC_DATE is character. Won't work. Fix the data set.

--
Paige Miller
BrahmanandaRao
Lapis Lazuli | Level 10
data ds;
input company $ manufac_date date9.  ;
format manufac_date date9.; 
datalines;
Hynduai 24Oct2001
Maruthi 12Mar2008
scoda   02Aug2007
Tata    16Jun2020
;
run;

data ds1;
set ds;
Years=intck('Year',manufac_date,today, today()); 
Months=intck('Month',manufac_date,today()); 
Days=intck('Day',manufac_date,today()); 
format Years  Months Days manufac_date today date9.; 
proc print;
run;

PaigeMiller
Diamond | Level 26

I believe @Kurt_Bremser explained already why INTCK is not going to work here.

--
Paige Miller
BrahmanandaRao
Lapis Lazuli | Level 10

Anandkvn_0-1625920781702.png

data ds;
input company $ manufac_date date9. ;
format manufac_date date9.;
datalines;
Hynduai 24Oct2001
Maruthi 12Mar2008
scoda 02Aug2007
Tata 16Jun2020
;
run;





proc SQL;

select company , manufac_date,
intck('Years',manufac_date,today()) as years,
intck('Month',manufac_date,today()) as months,
intck('Day',manufac_date,today()) as days
from ds
;
quit;
Kurt_Bremser
Super User

@BrahmanandaRao wrote:

Anandkvn_0-1625920781702.png

data ds;
input company $ manufac_date date9. ;
format manufac_date date9.;
datalines;
Hynduai 24Oct2001
Maruthi 12Mar2008
scoda 02Aug2007
Tata 16Jun2020
;
run;





proc SQL;

select company , manufac_date,
intck('Years',manufac_date,today()) as years,
intck('Month',manufac_date,today()) as months,
intck('Day',manufac_date,today()) as days
from ds
;
quit;

Looks good to me.

Kurt_Bremser
Super User

@BrahmanandaRao wrote:
data ds1;
set ds;
days = today() - manufac_date;
Years=intck('Year',manufac_date,today()); 
 Months=intck('Month',manufac_date,today()); 
/* Days=intck('Day',manufac_date,today()); */
 format Years  Months Days manufac_date today mmddyy10.; 
proc print;
run;

I got output like this

 

Anandkvn_0-1625908895802.png

 


READ.

THE.

LOG.

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 9 replies
  • 1949 views
  • 0 likes
  • 3 in conversation