MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Różnica między SYSDATE() i NOW() w MariaDB

W MariaDB SYSDATE() i NOW() funkcje są podobne pod tym względem, że zwracają bieżącą datę i godzinę.

Jest jednak ważna różnica:SYSDATE() zwraca czas wykonania, podczas gdy NOW() zwraca czas rozpoczęcia wykonywania instrukcji.

A po uruchomieniu w ramach procedury składowanej lub wyzwalacza, SYSDATE() zwróci czas wykonania, podczas gdy NOW() zwróci czas rozpoczęcia wykonywania procedury składowanej lub wyzwalacza.

Przykład

Najpierw spójrzmy, jak te dwie funkcje mogą dawać różne wyniki.

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

Wynik (przy użyciu wyjścia pionowego):

    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

Tutaj użyliśmy funkcji SLEEP() funkcja wstrzymania przetwarzania na pięć sekund przed drugą partią wywołań funkcji.

Widzimy, że za drugim razem SYSDATE() został wywołany, jego wartość zwracana była inna niż za pierwszym razem. NOW() z drugiej strony zwrócił tę samą wartość za każdym razem.

Inne uwagi

Przy tych dwóch funkcjach należy pamiętać o kilku innych kwestiach:

  • SET TIMESTAMP nie wpływa na SYSDATE() , podczas gdy tak wpływają na NOW() funkcjonować.
  • SYSDATE() jest niebezpieczne dla replikacji, jeśli używane jest rejestrowanie binarne oparte na instrukcjach. Istnieją jednak sposoby radzenia sobie z tym, jeśli jest to wymagane. Możesz użyć --sysdate-is-now polecenie nie jest domyślną opcją aliasu SYSDATE() do NOW() aby był bezpieczny do replikacji. Zobacz dokumentację MariaDB dla SYSDATE() aby uzyskać więcej informacji.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wskazówki dotyczące monitorowania replikacji MariaDB za pomocą ClusterControl

  2. Wykorzystanie replikacji klastra MySQL Galera do utworzenia klastra rozproszonego geograficznie:część pierwsza

  3. MariaDB CEIL() Objaśnienie

  4. MariaDB CURRENT_DATE () Wyjaśnione

  5. Jak wykonać odzyskiwanie danych MySQL i MariaDB do określonego momentu za pomocą ClusterControl