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