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()înWHEREpe tabele mari. Valoarea se recalculează pentru fiecare rând și împiedică folosirea indexurilor. FoloseșteNOW().
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.