STR_TO_DATE() în MySQL

Transformă un text într-o dată, după formatul în care este scris (ex. 19.10.2026).

Sintaxă
STR_TO_DATE(text, format)

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 cu STR_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.