Будет ли «SELECT CURDATE ()» возвращать несколько значений в достаточно длинном запросе за несколько дней? - PullRequest
0 голосов
/ 06 мая 2018

Сейчас 23:59. Вы запускаете запрос SELECT CURDATE(), ..., который занимает 5 минут. Некоторые строки оцениваются сегодня, некоторые завтра. Будет ли набор результатов включать несколько значений (сегодня и завтра) для CURDATE()?

1 Ответ

0 голосов
/ 06 мая 2018

Руководство по MySQL четко гласит:

Функции, возвращающие текущую дату или время, оцениваются только один раз на запрос в начале выполнения запроса. Это означает, что множественные ссылки на функцию, такую ​​как NOW (), в одном запросе всегда приводят к тот же результат. ... Этот принцип также применяется к CURDATE (), CURTIME (), UTC_DATE (), UTC_TIME (), UTC_TIMESTAMP () и к любому из их синонимов.


Таким образом, ответ таков: результирующий набор будет включать одно значение, и это будет «сегодня» (дата начала выполнения запроса).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...