- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
I have date variables in the form of YYYY-MM-DD, stored in tables.
How do I extract the Year?
Basically I just want to do a simple SQL
such as, select * from table where YEAR(date) = 2017;
Thanks!
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
the function you are looking for is year() as you guessed correctly, but your data has to be in
a date format.
data have;
format dt yymmdd10.;
input dt yymmdd10.;
datalines;
2016-05-21
2017-08-12
2014-03-02
;
run;
data want;
set have;
where year(dt)=2017;
run;
Edit: If you have strings instead :
data want;
set have;
where year(input(dt,yymmdd10.))=2017;
run;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
the function you are looking for is year() as you guessed correctly, but your data has to be in
a date format.
data have;
format dt yymmdd10.;
input dt yymmdd10.;
datalines;
2016-05-21
2017-08-12
2014-03-02
;
run;
data want;
set have;
where year(dt)=2017;
run;
Edit: If you have strings instead :
data want;
set have;
where year(input(dt,yymmdd10.))=2017;
run;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Do you have another solution to change observation value at
one shot for all rather than one by one. suppose i have billions of record...
- Tags:
- gamotte
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Are you sure its a SAS numeric date, i.e. it is a number if you remove the format. If so then year(), if it is character which I suspect, then just use:
where scan(date,1,"-")="2017";
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
The date is in this format YYMMDD10.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Can I create a new column year within proc sql?
proc sql;
select input(thedate,yymmdd10.) as myyear
from mytable;
quit;
I tried this but doesn't seem to work.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
I am trying to fetch system year ( year(today())
And then compare year from input file to fetched year.
If matches , those rows should come in output.
If comparison for years is not working ..Have tried reading input year in chat..Integer both..But nothing working.
Can some one please help..Urgent !
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
This question is answered and closed. Please start a new thread providing example data in the form of a datastep and what the output should look like.