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.

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

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
  • 1872 views
  • 0 likes
  • 3 in conversation