Hi guys, I need your help.
Every two months, the day sixteen I need run this query select to recover the rows of previous months.
If tried this version with current date (2013-05-16) I’ve the correct output:
mysql> SELECT
DATE_ADD(
LAST_DAY(
DATE_ADD(
LAST_DAY(CURDATE()),
INTERVAL - 180 DAY
)
),
INTERVAL 1 DAY
) AS first_day,
LAST_DAY(
MAKEDATE(YEAR(CURDATE()) , 40)
) AS last_day;
+------------+------------+
| first_day | last_day |
+------------+------------+
| 2013-01-01 | 2013-02-28 |
+------------+------------+
1 row in set
Instead if tried this version with date 2013-07-16 next time, I’ve this incorrect output; I need this:
+------------+------------+
| first_day | LAST_DAY |
+------------+------------+
| 2013-03-01 | 2013-04-30 |
+------------+------------+
But I’ve this:
mysql> SELECT
DATE_ADD(
LAST_DAY(
DATE_ADD(
LAST_DAY('2013-07-16'),
INTERVAL - 180 DAY
)
),
INTERVAL 1 DAY
) AS first_day,
LAST_DAY(
MAKEDATE(YEAR('2013-07-16') , 40)
) AS LAST_DAY;
+------------+------------+
| first_day | LAST_DAY |
+------------+------------+
| 2013-03-01 | 2013-02-28 |
+------------+------------+
1 row in set
I would really appreciate any help, thank you very much.