Subtract month and day mysql
MysqlSqlMysql Problem Overview
I need to subtract 1 month and 4 days with mysql, I saw the command
DATE_ADD (NOW (), - 1 MONTH)
perfect for 1 month but for 1 month and 4 days, using 31 days is not valid for every month that some bring 30, 29, 28. I can not add 31 + 4, 30 + 4, etc.
Mysql Solutions
Solution 1 - Mysql
using DATE_SUB
[docs]
like :
DATE_SUB((DATE_SUB(curdate(), INTERVAL 1 MONTH)), INTERVAL 4 DAY)
Solution 2 - Mysql
SELECT DATE_ADD(DATE_ADD(NOW(),INTERVAL -1 MONTH), INTERVAL -4 DAY)
Solution 3 - Mysql
Keep it simple:
SELECT CURDATE() - INTERVAL 1 MONTH - INTERVAL 4 DAY;
or
SELECT '2014-03-27' - INTERVAL 1 MONTH - INTERVAL 4 DAY;
or if you like to preserve the current time:
SELECT NOW() - INTERVAL 1 MONTH - INTERVAL 4 DAY;
(Tested on MySQL 5.1.73 and newer)
Solution 4 - Mysql
SELECT CURRENT_TIMESTAMP + INTERVAL - 1 MONTH + INTERVAL - 4 DAY;
or
SELECT CURRENT_DATE + INTERVAL - 1 MONTH + INTERVAL - 4 DAY;