# Dynamically generate last day of prior quarter based on today's date.

Options
Member
edited January 2023

Hello, I need help generating the last day of the prior quarter based on today's date. This is used to determine which variables should be displayed based on if their date column is between ranges based on the last day of the prior quarter. I have been unsuccessful in my attempts so far. Any help is appreciated.

• Coach
Options
```CASE
WHEN QUARTER(CURDATE())=1 THEN STR_TO_DATE(CONCAT('12-31-',YEAR(CURDATE())-1), '%m-%d-%Y')
WHEN QUARTER(CURDATE())=2 THEN STR_TO_DATE(CONCAT('03-31-',YEAR(CURDATE())), '%m-%d-%Y')
WHEN QUARTER(CURDATE())=3 THEN STR_TO_DATE(CONCAT('06-30-',YEAR(CURDATE())), '%m-%d-%Y')
WHEN QUARTER(CURDATE())=4 THEN STR_TO_DATE(CONCAT('09-30-',YEAR(CURDATE())), '%m-%d-%Y')
END
```

“There is a superhero in all of us, we just need the courage to put on the cape.” -Superman
• Coach
Options

Another version would be

```LAST_DAY(CURDATE() - INTERVAL MOD(MONTH(CURDATE()), 3) MONTH)
```

To break it down:

```MONTH(CURDATE()) - returns the month number of the current date (1-12)

MOD(..,3) returns the remainder when dividing by the month number by 3 so the last month of the quarter will be 0

INTERVAL .. MONTH - subtracts the number of months to get to the last month of the prior quarter

LAST_DAY - returns the last day of the month for the given date
```