Is there a difference between:
SELECT DATE_ADD('2005-01-01', INTERVAL 3 MONTH);
and
SELECT '2005-01-01' + INTERVAL 3 MONTH;
No, they're the same.
I asked a similar question just now and found the answer myself. Here's the justification why they are the same:
SELECT BENCHMARK(20000000, DATE_ADD(NOW(), INTERVAL 3 MONTH));
+--------------------------------------------------------+
| BENCHMARK(20000000, DATE_ADD(NOW(), INTERVAL 3 MONTH)) |
+--------------------------------------------------------+
| 0 |
+--------------------------------------------------------+
1 row in set (1.70 sec)
SELECT BENCHMARK(20000000, NOW() + INTERVAL 3 MONTH);
+-----------------------------------------------+
| BENCHMARK(20000000, NOW() + INTERVAL 3 MONTH) |
+-----------------------------------------------+
| 0 |
+-----------------------------------------------+
1 row in set (1.71 sec)
来源:https://stackoverflow.com/questions/1128736/mysql-date-add