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.

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

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