MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Разлика между SYSDATE() и NOW() в MariaDB

В MariaDB, SYSDATE() и NOW() функциите са подобни по това, че връщат текущата дата и час.

Има обаче важна разлика:SYSDATE() връща времето, през което се изпълнява, докато NOW() връща времето, през което операторът е започнал да се изпълнява.

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

Пример

Първо, нека разгледаме как тези две функции могат да дадат различни резултати.

SELECT 
    NOW(),
    SYSDATE(),
    SLEEP(5),
    NOW(),
    SYSDATE();

Резултат (с помощта на вертикален изход):

    NOW(): 2021-05-27 09:22:08
SYSDATE(): 2021-05-27 09:22:08
 SLEEP(5): 0
    NOW(): 2021-05-27 09:22:08
SYSDATE(): 2021-05-27 09:22:13

Тук използвахме SLEEP() функция за пауза на обработката за пет секунди преди втората партида функции.

Можем да видим, че вторият път SYSDATE() е извикана, връщаната му стойност е различна от първия път. NOW() от друга страна, върна една и съща стойност и двата пъти.

Други съображения

Има няколко други неща, които трябва да имате предвид при тези две функции:

  • SET TIMESTAMP не засяга SYSDATE() , докато прави засяга NOW() функция.
  • SYSDATE() не е безопасно за репликация, ако се използва базирано на изрази двоично регистриране. Въпреки това, има начини за справяне с това, ако е необходимо. Можете да използвате --sysdate-is-now командата не е опция по подразбиране за псевдоним SYSDATE() към NOW() за да го направи безопасно за репликация. Вижте документацията на MariaDB за SYSDATE() за повече информация.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Автоматизирано тестване на процеса на надстройка за MySQL/MariaDB/Percona сървър

  2. Как MAKEDATE() работи в MariaDB

  3. Как да извадите минути от стойност на дата и час в MariaDB

  4. MariaDB LENGTH() срещу LENGTHB():Каква е разликата?

  5. MariaDB CURRENT_DATE() Обяснено