MySQL, come lavorare con le date in italiano?

Il formato di default per le date sul DB MySQL è “YYYY-mm-dd” (anno, mese, giorno) e per la data/ora “YYYY-mm-dd hh:ii:ss” (come per la data più ora, minuti, secondi).

Purtroppo capita la disavventura di avere a che fare con database in cui le date sono state salvate in un campo varchar in formato italiano “hh:ii:ss dd/mm/YYYY”. Quesot è un problema se si vogliono fare operazioni sulle date, tipo tutti i record del giorno X, tutti i record più recenti di Y, oppure semplicemente ordinare per data/ora.

Per questi casi, MySQL mette a disposizione la funzione STR_TO_DATE() che prende come input il nome del campo (oppure direttamente una data in formato testuale) ed i parametri di formattazione per poterla convertire in una data vera e propria.

Facciamo un esempio. La seguente query converte una data da formato italiano in formato data e, cosa più interessante, tratta l’output come una data e non come testo:

SELECT STR_TO_DATE('10:14:37 03/06/2019', '%h:%i:%s %d/%m/%Y') AS d;
mysql> SELECT STR_TO_DATE('10:14:37 03/06/2019', '%h:%i:%s %d/%m/%Y') AS d;
+---------------------+
| d |
+---------------------+
| 2019-06-03 10:14:37 |
+---------------------+
1 row in set (0,00 sec)

La funzione può essere usata anche nella clausola WHERE oppure ORDER BY.

Maggiori informazioni qui.

enjoy!

Ti interessa acquistare un dominio a prezzi ultraconvenienti? clicca qui

Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂



Commenta