Ответ 1
Нет, они одинаковы.
Есть ли разница между:
SELECT DATE_ADD('2005-01-01', INTERVAL 3 MONTH);
и
SELECT '2005-01-01' + INTERVAL 3 MONTH;
Нет, они одинаковы.
Я задал подобный вопрос только сейчас и сам нашел ответ. Здесь обоснование, почему они одинаковы:
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)