Ce face STR_TO_DATE()
STR_TO_DATE() este inversul lui DATE_FORMAT(): citește un text cu o dată scrisă într-un format oarecare și îl transformă într-o valoare DATE sau DATETIME.
Dacă textul nu corespunde formatului sau data nu există (31 februarie), rezultatul este NULL și apare un avertisment.
Parametri
| Parametru | Descriere |
|---|---|
text |
Textul care conține data. |
format |
Formatul în care e scris textul, cu aceleași coduri ca la DATE_FORMAT(). |
Ce returnează
O dată, dată-oră sau oră, după codurile din format; NULL dacă textul e invalid.
Exemple
Exemplul 1: Date scrise în format românesc
SELECT STR_TO_DATE('19.10.2026', '%d.%m.%Y') AS data,
STR_TO_DATE('19.10.2026 14:30', '%d.%m.%Y %H:%i') AS data_ora;
Rezultat
+------------+---------------------+
| data | data_ora |
+------------+---------------------+
| 2026-10-19 | 2026-10-19 14:30:00 |
+------------+---------------------+
Exemplul 2: Dată inexistentă
SELECT STR_TO_DATE('31.02.2026', '%d.%m.%Y') AS invalida;
Rezultat
+----------+
| invalida |
+----------+
| NULL |
+----------+
Warning (Code 1411): Incorrect datetime value: '31.02.2026' for function str_to_date
Greșeli frecvente
- Imporți date românești direct într-o coloană
DATE. MySQL așteaptăAAAA-LL-ZZ; convertește întâi cuSTR_TO_DATE().
Comenzi înrudite
DATE_FORMAT(): Afișează o dată în formatul dorit, ex. 19.10.2026 sau „Luni 19 Octombrie 2026”.GET_FORMAT(): Returnează șablonul de format standard pentru o regiune, gata de folosit în DATE_FORMAT().CAST(): Convertește o valoare într-un alt tip: SIGNED, UNSIGNED, DECIMAL, CHAR, DATE, DATETIME, JSON etc.