📢 Nuovo Corso Laravel API disponibile!

Data e Ora in SQL

Gestire efficacemente date e orari è un aspetto cruciale delle query SQL, poiché spesso è necessario filtrare e manipolare i dati in base ai timestamp. In questa lezione, esploreremo come lavorare con date e orari in SQL, inclusi i concetti di tipi di dati per le date, le funzioni di data e ora e le varie operazioni legate ai dati basati sul tempo.

Tipi di Dati per le Date

SQL offre tipi di dati specifici per gestire date e orari. Alcuni tipi di dati comuni relativi alle date includono:

  • DATE: Archivia valori di data nel formato AAAA-MM-GG.
  • TIME: Archivia valori di orario nel formato HH:MM:SS.
  • DATETIME o TIMESTAMP: Archivia sia valori di data che di ora.
  • YEAR: Archivia un valore di anno in formato a quattro cifre.

Funzioni di Data e Ora

SQL offre una serie di funzioni di data e ora che consentono di eseguire operazioni e calcoli su valori di data e ora. Alcune funzioni di data comuni includono:

  • NOW(): Restituisce la data e l’ora correnti.
  • DATE(): Esegue l’estrazione della parte di data da un valore datetime.
  • EXTRACT(): Esegue l’estrazione di componenti specifici da un valore datetime (ad esempio, anno, mese, giorno).
  • DATEADD(): Aggiunge un intervallo specificato a una data o un orario.
  • DATEDIFF(): Calcola la differenza tra due date o orari.

Esempi di Lavoro con Date e Orari

Esempio 1: Filtraggio per Data

SELECT *
FROM ordini
WHERE data_ordine >= '2023-01-01' AND data_ordine <= '2023-06-30';

Esempio 2: Calcolo dell’Età

SELECT nome, EXTRACT(YEAR FROM NOW()) - EXTRACT(YEAR FROM data_nascita) AS eta
FROM clienti;

Aritmetica delle Date

SQL consente di eseguire operazioni aritmetiche su date e orari. Ad esempio:

SELECT data_ordine, data_ordine + INTERVAL 7 DAY AS data_futura
FROM ordini;

Formattazione delle Date e Orari

Diverse basi di dati offrono funzioni specifiche per formattare date e orari secondo schemi desiderati:

-- MySQL
SELECT DATE_FORMAT(data_ordine, '%Y-%m-%d') AS data_formattata
FROM ordini;
-- SQL Server
SELECT FORMAT(data_ordine, 'yyyy-MM-dd') AS data_formattata
FROM ordini;

Fusi Orari

Quando si lavora con date e orari, è importante considerare i fusi orari, specialmente nelle applicazioni che coprono diverse regioni.

Conclusioni

Essere competenti nella gestione di date e orari in SQL è essenziale per una manipolazione e analisi dei dati efficace. Utilizzando i tipi di dati appropriati per le date, le funzioni e le operazioni aritmetiche corrette, è possibile eseguire facilmente attività come il filtraggio, i calcoli e la formattazione legati ai dati basati sul tempo.