1. Introduzione
Nei database MySQL, gestirai frequentemente dati di data e ora. Le date memorizzate in un database sono salvate in formati standard, ma quando le mostri agli utenti, spesso vuoi riformattarle per una migliore leggibilità. È qui che la funzione DATE_FORMAT risulta utile. In questo articolo introdurremo come utilizzare la funzione DATE_FORMAT e le varie opzioni di formattazione, spiegando modi pratici per applicarla attraverso esempi reali.
2. Panoramica della funzione DATE_FORMAT
2.1 Cos’è la funzione DATE_FORMAT?
La funzione DATE_FORMAT è una funzione MySQL usata per convertire i dati di data in un formato specificato. Viene utilizzata quando vuoi visualizzare le date in un formato arbitrario anziché nel formato predefinito YYYY-MM-DD o nel formato standard datetime. Ad esempio, se desideri mostrare una data agli utenti nel formato “Sep 16, 2024”, questa funzione è molto utile.
2.2 Sintassi di base
La sintassi di base della funzione DATE_FORMAT è la seguente.
DATE_FORMAT(date, format)
date: I dati di data che vuoi formattare.format: Una stringa che specifica il formato di output della data.
Vediamo un esempio concreto:
SELECT DATE_FORMAT('2024-09-16', '%Y-%m-%d') AS formatted_date;
Questa query converte la data ‘2024-09-16’ nel formato “2024-09-16” e la restituisce.

3. Parametri di formattazione della data
3.1 Elenco dei specificatori di formato
La funzione DATE_FORMAT supporta molti specificatori di formato. Di seguito è riportato un elenco di quelli più comunemente usati:
%Y: Anno a 4 cifre (es. 2024)%y: Anno a 2 cifre (es. 24)%m: Mese a 2 cifre (01‑12)%c: Mese (1‑12)%d: Giorno a 2 cifre (01‑31)%e: Giorno (1‑31)%H: Ora in formato 24 ore (00‑23)%ho%I: Ora in formato 12 ore (01‑12)%i: Minuti (00‑59)%s: Secondi (00‑59)%p: AM o PM
3.2 Esempi reali
Vediamo esempi concreti di come questi specificatori influenzano l’output.
SELECT
DATE_FORMAT('2024-09-16 14:35:59', '%Y-%m-%d %H:%i:%s') AS full_format,
DATE_FORMAT('2024-09-16 14:35:59', '%b %d, %Y') AS us_format,
DATE_FORMAT('2024-09-16 14:35:59', '%d/%m/%Y') AS european_format,
DATE_FORMAT('2024-09-16 14:35:59', '%h:%i %p') AS twelve_hour_format;
L’output di questa query sarà simile a questo:
full_format: 2024-09-16 14:35:59us_format: Sep 16, 2024european_format: 16/09/2024twelve_hour_format: 02:35 PM
4. Casi d’uso pratici
4.1 Scenario 1: Generazione di report
Ad esempio, quando si generano report mensili in un’azienda, potresti voler visualizzare le date in un formato “YYYY-MM”. La query seguente formatta le date dei report a tale scopo.
SELECT
DATE_FORMAT(sale_date, '%Y-%m') AS report_month,
SUM(sales) AS total_sales
FROM sales_data
GROUP BY report_month;
Questa query restituisce le vendite totali mensili dai dati di vendita in un formato come “2024-09”.
4.2 Scenario 2: Interfaccia utente
DATE_FORMAT è utile anche quando vuoi mostrare le date in modo chiaro agli utenti di un’applicazione web. Ad esempio, puoi usarla così per visualizzare la data dell’ultimo accesso nella pagina del profilo utente.
SELECT
user_name,
DATE_FORMAT(last_login, '%Y-%m-%d %H:%i') AS last_login_formatted
FROM users;
Questo mostrerà la data e l’ora dell’ultimo accesso dell’utente come “2024-09-16 14:35”.
4.3 Scenario 3: Ottimizzazione delle query
In alcuni casi, DATE_FORMAT può essere utile anche per l’ottimizzazione delle query del database. Ad esempio, puoi utilizzare la formattazione quando estrai dati all’interno di un intervallo di date specifico.
SELECT
*
FROM transactions
WHERE DATE_FORMAT(transaction_date, '%Y-%m') = '2024-09';
Questa query estrae tutte le transazioni avvenute a settembre 2024.
5. Note e migliori pratiche per DATE_FORMAT
5.1 Considerazioni sulle prestazioni
Se utilizzi DATE_FORMAT frequentemente, potrebbe influire sulle prestazioni. In particolare, applicarlo ripetutamente a grandi set di dati può aumentare il tempo di elaborazione. Se necessario, considera di memorizzare le date preformattate in anticipo o di formattarle a livello dell’applicazione.
5.2 Localizzazione
Quando si costruisce un sistema multilingue utilizzando DATE_FORMAT, è necessario prestare attenzione alla localizzazione. Poiché i formati di visualizzazione delle date variano a seconda del paese e della regione, potrebbe essere necessario cambiare dinamicamente i formati in base alla locale dell’utente.
5.3 Formattazione Coerente
Utilizzare formati di data coerenti in tutto il sistema è essenziale per migliorare l’esperienza dell’utente. Ad esempio, usando lo stesso formato nei moduli di input, nelle sezioni di visualizzazione e nei report, è possibile evitare di confondere gli utenti.
6. Riepilogo
La funzione DATE_FORMAT è uno strumento potente per formattare i dati di data in modo flessibile in MySQL. In questo articolo abbiamo trattato l’uso di base, esempi pratici e note importanti e best practice. Utilizzando efficacemente questa funzione, è possibile visualizzare le date in modo più chiaro e più user‑friendly. Come passo successivo, consigliamo di approfondire le operazioni più avanzate su data e ora.
7. Risorse di Riferimento
- MySQL Official Documentation: DATE_FORMAT
- Poiché gli articoli correlati e i tutorial vengono aggiornati regolarmente, assicurati di consultare la documentazione ufficiale e i blog tecnici con una certa frequenza.
Speriamo che questo articolo ti aiuti a comprendere e utilizzare efficacemente la funzione DATE_FORMAT.

