- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Posted 01-25-2016 03:46 PM
(20133 views)
I am fairly new to SAS and am struggling with dates! I need to take what's in the 'Have' column and convert it to what's in 'Beginning' and 'End'. Here's the code I have;
t2.end_date as Have,
QTR(DATEPART(t2.end_date)) as Quarter, /*Gets me the number of the quarter (1-4)*/
INTNX('Quarter',t2.end_date,1,'B') as tmp,
Have | Want | |||||
Quarter | Beginning | End | Beginning | End | ||
31JAN2015:00:00:00.000 | 1 | . | . | 1-Jan-2015 | 31-Mar-2015 | |
28FEB2015:00:00:00.000 | 1 | . | . | 1-Jan-2015 | 31-Mar-2015 | |
31MAR2015:00:00:00.000 | 1 | . | . | 1-Jan-2015 | 31-Mar-2015 | |
30APR2015:00:00:00.000 | 2 | . | . | 1-Apr-2015 | 30-Jun-2015 | |
31MAY2015:00:00:00.000 | 2 | . | . | 1-Apr-2015 | 30-Jun-2015 | |
30JUN2015:00:00:00.000 | 2 | . | . | 1-Apr-2015 | 30-Jun-2015 | |
31JUL2015:00:00:00.000 | 3 | . | . | 1-Jul-2015 | 30-Sep-2015 |
2 REPLIES 2
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
This:
INTNX('Quarter',datepart(t2.have),1,'B') as tmp,
is going to shift the date to the following quarter. You need to change it to:
INTNX('Quarter',datepart(t2.have),0,'Begin') as beginning,
INTNX('Quarter',datepart(t2.have),0,'End') as end,
making sure to put the date in the have variable.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Change your third argument to INTNX to 0
Make sure you're working with a DATE variable, datepart() function
Interval is QTR/QUARTER
INTNX('QTR',datepart(t2.end_date),0,'B')