Quando si gestiscono dati di data in SQL, spesso diventa necessario visualizzare i dati in un formato specifico. Utilizzando la funzione DATE_FORMAT() di MySQL, è possibile convertire facilmente i dati di data in vari formati. Questo articolo fornirà una spiegazione dettagliata su come utilizzare la funzione DATE_FORMAT(), dall’uso di base agli esempi avanzati.
Uso di Base della Funzione DATE_FORMAT()
La funzione DATE_FORMAT() viene utilizzata per convertire i dati di data in un formato specificato. La sintassi di base è la seguente:
DATE_FORMAT(date, format)
date
: I dati di data che si desidera riformattareformat
: Il formato desiderato
Ad esempio, per convertire la data 2024-05-23
dal formato YYYY-MM-DD
al formato MM/DD/YYYY
, la query SQL sarebbe la seguente:
SELECT DATE_FORMAT('2024-05-23', '%m/%d/%Y') AS formatted_date;
Il risultato di questa query sarà 23/05/2024
. Successivamente, diamo un’occhiata più da vicino ai formati che possono essere utilizzati con la funzione DATE_FORMAT().
Elenco dei Formati
La funzione DATE_FORMAT() può visualizzare le date utilizzando vari formati. Ecco i principali formati:
Formati Relativi alla Data
%Y
: Anno a quattro cifre (es., 2024)%y
: Anno a due cifre (es., 24)%m
: Mese a due cifre (01-12)%c
: Mese (1-12)%d
: Giorno a due cifre (01-31)%e
: Giorno (1-31)
Formati Relativi all’Ora
%H
: Ora a due cifre nel formato 24 ore (00-23)%k
: Ora nel formato 24 ore (0-23)%h
: Ora a due cifre nel formato 12 ore (01-12)%I
: Ora nel formato 12 ore (01-12)%l
: Ora nel formato 12 ore (1-12)%i
: Minuti a due cifre (00-59)%s
: Secondi a due cifre (00-59)%p
: AM o PM
Altri Formati
%W
: Nome del giorno della settimana (es., Domenica)%a
: Nome abbreviato del giorno della settimana (es., Dom)%M
: Nome del mese (es., Gennaio)%b
: Nome abbreviato del mese (es., Gen)%j
: Giorno dell’anno (001-366)
Combinando questi formati, è possibile visualizzare le date in vari modi. Successivamente, vediamo alcuni esempi specifici di utilizzo di questi formati.
Esempi Pratici
Ecco alcuni esempi di come convertire i dati di data in vari formati utilizzando la funzione DATE_FORMAT().
Esempio 1: Cambiare il Formato della Data Standard
Nell’esempio seguente, la data 2024-05-23
viene convertita nel formato MM/DD/YYYY
.
SELECT DATE_FORMAT('2024-05-23', '%m/%d/%Y') AS formatted_date;
Risultato: 23/05/2024
Esempio 2: Visualizzare Solo Mese e Anno
Questo esempio estrae e visualizza il mese e l’anno dai dati di data.
SELECT DATE_FORMAT('2024-05-23', '%M %Y') AS formatted_date;
Risultato: Maggio 2024
Esempio 3: Visualizzare la Data e il Giorno della Settimana
Questo esempio converte la data in un formato che include la data e il nome del giorno della settimana.
SELECT DATE_FORMAT('2024-05-23', '%W, %M %d, %Y') AS formatted_date;
Risultato: Giovedì, 23 Maggio 2024
Esempio 4: Formattare i Dati dell’Ora
Questo esempio converte i dati dell’ora nel formato HH:MM AM/PM
.
SELECT DATE_FORMAT('2024-05-23 14:30:00', '%h:%i %p') AS formatted_time;
Risultato: 14:30
Esempio 5: Visualizzare i Timestamp Completi
Questo esempio cambia il formato di un timestamp completo che include sia la data che l’ora.
SELECT DATE_FORMAT('2024-05-23 14:30:00', '%Y-%m-%d %H:%i:%s') AS formatted_timestamp;
Risultato: 2024-05-23 14:30:00
Utilizza questi esempi come riferimento per convertire i dati di data nel formato richiesto. Successivamente, vediamo alcuni esempi avanzati di utilizzo della funzione DATE_FORMAT().
Esempi Avanzati
Sfruttando la funzione DATE_FORMAT() è possibile gestire requisiti più complessi. Ecco alcuni esempi che coinvolgono più colonne e modifiche condizionali del formato.
Esempio 1: Formattare le Date Utilizzando Più Colonne
Questo esempio mostra come visualizzare più colonne di data in formati diversi.
SELECT
DATE_FORMAT(order_date, '%Y-%m-%d') AS formatted_order_date,
DATE_FORMAT(delivery_date, '%M %d, %Y') AS formatted_delivery_date
FROM orders;
Questa query visualizza order_date
nel formato YYYY-MM-DD
e delivery_date
nel formato Mese GG, YYYY
.
Esempio 2: Modifica Condizionale del Formato
Questo esempio mostra come cambiare il formato in base a una condizione. Qui, il formato della data cambia in base al valore della colonna status
.
SELECT
order_id,
status,
CASE
WHEN status = 'shipped' THEN DATE_FORMAT(ship_date, '%M %d, %Y')
ELSE DATE_FORMAT(order_date, '%Y-%m-%d')
END AS formatted_date
FROM orders;
Questa query visualizza ship_date
nel formato Mese GG, YYYY
se lo status
è shipped
; altrimenti, visualizza order_date
nel formato YYYY-MM-DD
.
Esempio 3: Formattare Date Generate Dinamicamente
Questo esempio mostra come generare e formattare dinamicamente la data corrente.
SELECT DATE_FORMAT(NOW(), '%W, %M %d, %Y %h:%i %p') AS current_datetime;
Questa query visualizza la data e l’ora correnti nel formato Giorno della settimana, Mese Giorno, Anno Ora:Minuti AM/PM
.
Esempio 4: Formato Data Specifico per Locale
Questo esempio mostra come visualizzare le date secondo formati specifici per locale. Ad esempio, visualizzando le date nel formato locale giapponese.
SELECT DATE_FORMAT(order_date, '%Y年%m月%d日') AS formatted_date_jp
FROM orders;
Questa query visualizza order_date
nel formato locale giapponese YYYY年MM月DD日
.
Utilizza questi esempi avanzati come guida per sfruttare in modo flessibile la funzione DATE_FORMAT(). Successivamente, riassumeremo i punti chiave dell’utilizzo della funzione DATE_FORMAT() e forniremo consigli per l’applicazione pratica.
Riepilogo
La funzione DATE_FORMAT() è uno strumento potente in MySQL per cambiare in modo flessibile il formato dei dati di data. Dall’uso di base ai dettagli dei formati, esempi pratici e casi d’uso avanzati, hai imparato come manipolare liberamente i dati di data. Ecco i punti chiave:
Punti Chiave della Funzione DATE_FORMAT()
- Sintassi di Base: Utilizza
DATE_FORMAT(date, format)
per convertire una data in un formato specificato. - Formati: Combina vari formati per anno, mese, giorno, ora, giorno della settimana, ecc., per opzioni di visualizzazione versatili.
- Esempi Pratici: Cambiamenti standard del formato della data e visualizzazioni specifiche dell’ora.
- Esempi Avanzati: Modifiche del formato per più colonne, cambiamenti condizionali del formato, date generate dinamicamente e visualizzazioni specifiche per locale.
Imparando a padroneggiare la funzione DATE_FORMAT(), puoi presentare i dati di data recuperati dal database in un formato leggibile, migliorando la qualità delle applicazioni e dei report. Assicurati di utilizzarla nelle tue operazioni quotidiane sui dati e nelle analisi.