I programmatori si trovano molto spesso a lavorare con le date: in applicativi di gestione del contenuto ad esempio, sono praticamente un elemento obbligatorio senza il quale molte operazioni basilari, come gli ordinamenti cronologici, non sarebbero possibili.
Ecco perchè diventa molto importante saper gestire questo tipo di dato. Vi sono molti modi differenti di manipolare le date, ma quello che vogliamo presentare oggi è una soluzione che riguarda il salvataggio di date in una base di dati e il conseguente recupero.
Molti programmatori utilizzano le funzioni di manipolazione delle stringhe per formattare le date, ignorando che tale soluzione è poco performante ed ancora meno efficiente. Quando si lavora ad un progetto con un database alle spalle, bisogna sempre tenere presente che far eseguire alcuni tipi di operazioni al DBMS piuttosto che all’interpreste del linguaggio di programmazione (nel caso del PHP, ad esempio) è sicuramente molto più performante oltre che leggibile.
Bisogna a questo scopo conoscere alcune funzionalità che i database, o meglio, i DBMS, mettono a disposizione. Una di queste è proprio DATE_format , che appunto durante una interrogazione permette di inserire nel result set le date già formattate e pronte per l’utilizzo.
Vediamo un esempio:
SELECT title, created DATE_format(created, ‘ %e/%m/%Y, %l:%i%p’) as created
FROM table
WHERE category=1
ORDER BY created DESC
Supponiamo di avere una tabella per le notizie, da cui vogliamo recuperare il titolo e appunto la data di crezione di ogni item.
Attraverso l’utilizzo della funzione DATE_format messa a disposizione dal motore di MySQL, riceviamo una data già formatta è pronta per l’uso, senza dover richiamare ulteriori funzioni di formattazione o di manipolazione di stringhe, con un conseguente aumento delle prestazioni (seppure di pochi microsecondi nella maggior parte dei casi) e della leggibilità del codice.
DATE_format accetta due parametri: il primo è la data da formattare, il secondo è una stringa di formattazione, che segue delle regole simili a quelle utilizzate per questo tipo di stringhe dalla maggior parte dei linguaggi di programmazione, e che trovate qui.
A questo punto, quando si utilizzerà il relativo result set, si potranno usare direttamente sia il campo title che il campo created senza ulteriosi interventi da parte del programmatore.

