Come Cambiare Facilmente il Formato della Data Utilizzando la Funzione DATE_FORMAT() in SQL

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.

Indice

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 riformattare
  • format: 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.

Indice