После того, как я видел много вопросов здесь с помощью DATE_SUB()
или DATE_ADD()
функции вместо арифметических операторов +
или -
, Я задавался вопросом, было ли какое-либо различие:
Кавычка из руководства MySQL:
Арифметика дат также может быть выполнена с помощью ИНТЕРВАЛА вместе с + или - оператор:
date + INTERVAL expr unit date - INTERVAL expr unit
Так в основном эти два оператора возвращают тот же результат:
SELECT DATE_ADD(NOW(), INTERVAL 7 DAY);
и
SELECT NOW() + INTERVAL 7 DAY;
Теперь мой вопрос:
Есть ли любое различие между DATE_SUB()
и использование -
оператор в MySQL? (помимо удобочитаемости?)
Документация MySQL для Date_add ( http://dev.mysql.com/doc/refman/5.1/en/date-andtime-functions.html#function_date-add ) Явно говорится, что вы можете сделать дату арифметики с операторами + и - -.
Арифметика даты также может быть выполнена с использованием интервала вместе с оператором + или - Оператор:
Дата + интервал EXPR Блок
Дата - интервал EXPR Блок
Учитывая, что он одобрен документами, я думаю, что любая разница стильно. Я лично думаю, что +/- легче читать (в конце концов, вы не используете int_add (...) или double_add (...), чтобы манипулировать числовыми значениями, так почему даты?). Другие могут иметь свои причины для симпатии Date_add и Date_Sub, и это тоже нормально. Просто выберите что-нибудь и держитесь с ним.
JEMIAH
Для меня это вопрос опыта. Имея дело с несколькими редакторами, библиотеками и инструментами, которые манипулируют базами данных, я научился не доверять операторам "+" и "-" так же сильно, как DATE_SUB(). Гораздо меньше вероятность того, что что-то случайно сломается при следующем обновлении программного обеспечения с помощью DATE_SUB(), по сравнению с использованием +/-
.