Подтвердить что ты не робот

Разница между NOW(), SYSDATE() и CURRENT_DATE() в MySQL

Какая разница между NOW(), SYSDATE(), CURRENT_DATE() в MySQL и где она может использоваться в реальном сценарии.

Я пробовал NOW(), SYSDATE(), CURRENT_DATE(), когда я вставляю данные в таблицу, а тип данных столбца TIMESTAMP всем даются те же даты и время.

4b9b3361

Ответ 1

Current_date() предоставит вам только дату.
now() дает вам дату, когда начинается инструкция, процедура и т.д.
sysdate() дает вам текущее время и время. Посмотрите на секунды после ожидания через 5 секунд() 1 sysdate() 1 со следующим запросом (прокрутите вправо):

select now(),sysdate(),current_date(),sleep(5),now(),sysdate();

-- will give
-- now()    sysdate()   current_date()  sleep(5)    now()1  sysdate()1
-- 6/10/2014 2:50:04 AM 6/10/2014 2:50:04 AM    6/10/2014 12:00:00 AM   0   6/10/2014 2:50:04 AM 6/10/2014 2:50:09 AM

Ответ 2

NOW() возвращает постоянное время, указывающее время начала выполнения оператора. (Внутри хранимой функции или триггера NOW() возвращается время, в которое начинает выполняться инструкция функции или запуска.) Это отличается от поведения для SYSDATE(), которое возвращает точное время, в которое оно выполняется.

mysql> SELECT NOW(), SLEEP(2), NOW();
+---------------------+----------+---------------------+
| NOW()               | SLEEP(2) | NOW()               |
+---------------------+----------+---------------------+
| 2006-04-12 13:47:36 |        0 | 2006-04-12 13:47:36 |
+---------------------+----------+---------------------+

mysql> SELECT SYSDATE(), SLEEP(2), SYSDATE();
+---------------------+----------+---------------------+
| SYSDATE()           | SLEEP(2) | SYSDATE()           |
+---------------------+----------+---------------------+
| 2006-04-12 13:47:44 |        0 | 2006-04-12 13:47:46 |
+---------------------+----------+---------------------+

Ответ 3

Current_date возвращает метку времени клиента, в то время как sysdate возвращает отметку времени сервера. Если оба сервера и клиент находятся на одном компьютере, то результат обеих команд одинаковый. Но в случае, если ваш ранг, например, в США, а ваши клиенты находятся в Китае, эти две функции возвращают совершенно разные результаты.

Я не знаю о thew now(), извините: -)

Ответ 4

CURRENT_DATE() является синонимом многих других подобных функций, все из которых обеспечивают только дату. Существует тонкая разница между NOW() и SYSDATE(), которую вы можете прочитать больше на этом официальном сайте MySQL.

Ответ 5

NOW() возвращает постоянное время, которое указывает время, в которое оператор начал выполнять, тогда как SYSDATE() возвращает время, в которое оно выполнено... Иными словами, NOW() показывает время выполнения запроса, а SYSDATE() показывает само выполнение время..