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 | |
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.
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')
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.
Ready to level-up your skills? Choose your own adventure.