SYSDATE() în MySQL

Data și ora exactă din momentul în care se execută funcția, nu de la începutul instrucțiunii.

Sintaxă
SYSDATE([fsp])

Ce face SYSDATE()

NOW() returnează ora de la începutul instrucțiunii: oricâte apeluri faci în aceeași interogare, valoarea este aceeași. SYSDATE() returnează ora din momentul exact al apelului.

Diferența contează în proceduri lungi sau la măsurarea duratei. În rest, NOW() este preferat: e mai previzibil și se replică mai sigur.

Parametri

Parametru Descriere
fsp Opțional. Zecimalele secundelor (0-6).

Ce returnează

Data și ora curentă, de tip DATETIME.

Exemple

Exemplul 1: NOW() rămâne fix, SYSDATE() merge mai departe

SELECT SLEEP(1) AS pauza,
       TIMESTAMPDIFF(SECOND, NOW(), SYSDATE()) AS secunde_diferenta;

Rezultat

+-------+-------------------+
| pauza | secunde_diferenta |
+-------+-------------------+
|     0 |                 1 |
+-------+-------------------+

Greșeli frecvente

  • Folosești SYSDATE() în WHERE pe tabele mari. Valoarea se recalculează pentru fiecare rând și împiedică folosirea indexurilor. Folosește NOW().

Comenzi înrudite

  • NOW / CURDATE / DATE_FORMAT: Data și ora curentă și formatarea datelor.
  • TIMESTAMPDIFF(): Diferența dintre două momente în unitatea aleasă: secunde, minute, ore, zile, luni, ani.
  • SLEEP(): Oprește execuția interogării pentru un număr de secunde (poate avea zecimale), apoi returnează 0.