Spiegazione dettagliata di come eseguire l’aggiunta e la sottrazione di date in SQL

SQL è una competenza fondamentale per la gestione dei database, e l’aggiunta e la sottrazione di date sono operazioni spesso necessarie. In questo articolo, ci concentriamo sulle operazioni con le date in SQL, fornendo una spiegazione dettagliata dalla sintassi di base agli esempi pratici. Questo ti permetterà di gestire i dati di data in modo più fluido nel tuo lavoro.

Indice

Sintassi di base per l’aggiunta di date in SQL

In SQL, si utilizzano funzioni e sintassi standard per aggiungere giorni o mesi a una data. Questo permette di aggiungere un certo periodo di tempo a una data specifica.

Sintassi di base della funzione DATEADD

Viene presentato il metodo per aggiungere un periodo specifico a una data utilizzando la funzione DATEADD, comunemente usata nei database come SQL Server.

-- Sintassi di base della funzione DATEADD
DATEADD(unita, valore, data_di_riferimento)

Esempio di funzione DATEADD

Nell’esempio seguente, aggiungiamo 10 giorni al 1 gennaio 2024.

SELECT DATEADD(DAY, 10, '2024-01-01') AS Risultato_aggiunta;

Il risultato sarà l’11 gennaio 2024.

Aggiunta di date utilizzando INTERVAL

Viene illustrato il metodo per aggiungere date utilizzando INTERVAL, usato in database come MySQL.

-- Aggiunta di date utilizzando INTERVAL
SELECT '2024-01-01' + INTERVAL 10 DAY AS Risultato_aggiunta;

Anche in questo caso, il risultato sarà l’11 gennaio 2024.

Comprendere queste sintassi di base ti permetterà di eseguire facilmente operazioni sulle date. Successivamente, discuteremo la sottrazione delle date.

Sintassi di base per la sottrazione di date in SQL

In SQL, è anche comune dover sottrarre giorni o mesi da una data. Di seguito viene illustrato il metodo per sottrarre date utilizzando funzioni e sintassi standard.

Sottrazione di date utilizzando la funzione DATEADD

Nei database come SQL Server, puoi sottrarre un periodo specifico da una data utilizzando la funzione DATEADD. Per la sottrazione, si specifica un valore negativo.

-- Sottrazione di date utilizzando la funzione DATEADD
DATEADD(unita, valore, data_di_riferimento)

Esempio di funzione DATEADD

Nell’esempio seguente, sottraiamo 10 giorni dal 10 gennaio 2024.

SELECT DATEADD(DAY, -10, '2024-01-10') AS Risultato_sottrazione;

Il risultato sarà il 31 dicembre 2023.

Sottrazione di date utilizzando INTERVAL

Nei database come MySQL, puoi sottrarre un periodo specifico da una data utilizzando INTERVAL.

-- Sottrazione di date utilizzando INTERVAL
SELECT '2024-01-10' - INTERVAL 10 DAY AS Risultato_sottrazione;

Il risultato sarà il 31 dicembre 2023.

Proprio come per l’aggiunta di date, la sottrazione è facile da eseguire. Successivamente, discuteremo l’uso dettagliato della funzione DATEADD.

Uso della funzione DATEADD

La funzione DATEADD è molto utile per manipolare le date nei database come SQL Server. Puoi aggiungere o sottrarre giorni, mesi, anni, ecc., da una data specifica.

Sintassi della funzione DATEADD

La sintassi di base della funzione DATEADD è la seguente.

DATEADD(unita, valore, data_di_riferimento)
  • Unita: l’unità di tempo da aggiungere o sottrarre. Ad esempio, DAY, MONTH, YEAR, ecc.
  • Valore: la quantità da aggiungere o sottrarre. Si usa un valore positivo per l’aggiunta e un valore negativo per la sottrazione.
  • Data_di_riferimento: la data su cui operare.

Esempi concreti di funzione DATEADD

Aggiunta di giorni

Nell’esempio seguente, aggiungiamo 30 giorni al 1 gennaio 2024.

SELECT DATEADD(DAY, 30, '2024-01-01') AS Risultato_aggiunta;

Il risultato sarà il 31 gennaio 2024.

Aggiunta di mesi

Nell’esempio seguente, aggiungiamo 3 mesi al 1 gennaio 2024.

SELECT DATEADD(MONTH, 3, '2024-01-01') AS Risultato_aggiunta;

Il risultato sarà il 1 aprile 2024.

Aggiunta di anni

Nell’esempio seguente, aggiungiamo 5 anni al 1 gennaio 2024.

SELECT DATEADD(YEAR, 5, '2024-01-01') AS Risultato_aggiunta;

Il risultato sarà il 1 gennaio 2029.

Esempi avanzati di funzione DATEADD

Ottenere l’ultimo giorno del mese precedente

La seguente query ottiene l’ultimo giorno del mese precedente a una data specifica.

SELECT DATEADD(MONTH, -1, DATEADD(DAY, -DAY('2024-02-15'), '2024-02-15')) AS Ultimo_giorno_precedente;

Il risultato sarà il 31 gennaio 2024.

L’uso della funzione DATEADD permette di eseguire facilmente operazioni complesse sulle date. Successivamente, discuteremo come calcolare la differenza tra due date utilizzando la funzione DATEDIFF.

Calcolo della differenza di date con la funzione DATEDIFF

La funzione DATEDIFF è usata nei database come SQL Server per calcolare la differenza tra due date. Puoi calcolare la differenza in giorni, mesi, anni, ecc.

Sintassi della funzione DATEDIFF

La sintassi di base della funzione DATEDIFF è la seguente.

DATEDIFF(unita, data_inizio, data_fine)
  • Unita: l’unità di tempo per calcolare la differenza. Ad esempio, DAY, MONTH, YEAR, ecc.
  • Data_inizio: la data di inizio per il calcolo.
  • Data_fine: la data di fine per il calcolo.

Esempi concreti di funzione DATEDIFF

Calcolo della differenza in giorni

Nell’esempio seguente, calcoliamo la differenza in giorni dal 1 gennaio 2024 al 31 gennaio 2024.

SELECT DATEDIFF(DAY, '2024-01-01', '2024-01-31') AS Differenza_giorni;

Il risultato sarà 30 giorni.

Calcolo della differenza in mesi

Nell’esempio seguente, calcoliamo la differenza in mesi dal 1 gennaio 2024 al 1 aprile 2024.

SELECT DATEDIFF(MONTH, '2024-01-01', '2024-04-01') AS Differenza_mesi;

Il risultato sarà 3 mesi.

Calcolo della differenza in anni

Nell’esempio seguente, calcoliamo la differenza in anni dal 1 gennaio 2020 al 1 gennaio 2024.

SELECT DATEDIFF(YEAR, '2020-01-01', '2024-01-01') AS Differenza_anni;

Il risultato sarà 4 anni.

Esempi avanzati di funzione DATEDIFF

Calcolo dell’età a partire dalla data di nascita

La seguente query calcola l’età attuale di una persona a partire dalla sua data di nascita.

SELECT DATEDIFF(YEAR, '1990-05-15', GETDATE()) AS Eta;

La funzione GETDATE() restituisce la data corrente. Questo esempio calcola l’età di una persona nata il 15 maggio 1990.

L’uso della funzione DATEDIFF ti permette di calcolare facilmente la differenza tra due date. Successivamente, presenteremo alcuni esempi pratici di manipolazione delle date.

Esempi pratici di manipolazione delle date

Nell’ambito lavorativo, la manipolazione delle date è necessaria in vari scenari. Di seguito presentiamo alcuni esempi pratici di manipolazione delle date.

Esempio 1: Ottenere il primo giorno del mese successivo

Viene presentato il metodo per ottenere il primo giorno del mese successivo a una data specifica.

SELECT DATEADD(MONTH, 1, DATEADD(DAY, 1 - DAY('2024-01-15'), '2024-01-15')) AS Primo_giorno_mese_successivo;

Il risultato sarà il 1 febbraio 2024.

Esempio 2: Ottenere la data di un anno fa a partire dalla data corrente

Viene presentato il metodo per calcolare la data di un anno fa a partire dalla data corrente.

SELECT DATEADD(YEAR, -1, GETDATE()) AS Data_un_anno_fa;

La funzione GETDATE() restituisce la data corrente, e da questa viene sottratto un anno.

Esempio 3: Estrazione dei dati appartenenti a un periodo specifico

Viene presentato il metodo per estrarre i dati appartenenti a un periodo compreso tra una data di inizio e una data di fine specificate.

SELECT *
FROM Tabella_dati
WHERE Colonna_data BETWEEN '2024-01-01' AND '2024-12-31';

Questa query estrae i dati che appartengono al periodo compreso tra il 1 gennaio 2024 e il 31 dicembre 2024.

Esempio 4: Calcolo del tempo medio di elaborazione

Viene presentato il metodo per calcolare il tempo medio di elaborazione a partire dalla data di inizio e di fine di più processi.

SELECT AVG(DATEDIFF(DAY, Data_inizio, Data_fine)) AS Tempo_medio_elaborazione
FROM Tabella_elaborazioni;

Questa query calcola la differenza in giorni tra le date di inizio e fine, e ne calcola la media.

Esempio 5: Ottenere il giorno della settimana

Viene presentato il metodo per ottenere il giorno della settimana di una data specifica.

SELECT DATENAME(WEEKDAY, '2024-01-01') AS Giorno_settimana;

Il risultato sarà il giorno della settimana corrispondente al 1 gennaio 2024 (es. Lunedì).

Attraverso questi esempi pratici, puoi approfondire la tua comprensione delle operazioni sulle date e sviluppare competenze applicabili nel tuo lavoro quotidiano. Successivamente, discuteremo il calcolo delle date di fine mese.

Esempio avanzato: Calcolo delle date di fine mese

Nel contesto lavorativo, spesso è necessario calcolare le date di fine mese. Di seguito, viene presentato il metodo per ottenere la data di fine mese utilizzando SQL.

Metodo per ottenere la data di fine mese

Un metodo comune per ottenere la data di fine mese è sottrarre un giorno dal primo giorno del mese successivo.

Esempio in SQL Server

In SQL Server, puoi ottenere la data di fine mese utilizzando le funzioni DATEADD ed EOMONTH.

-- Ottenere la data di fine mese utilizzando la funzione EOMONTH
SELECT EOMONTH('2024-01-15') AS Data_fine_mese;

Il risultato sarà il 31 gennaio 2024.

Esempio in MySQL

In MySQL, puoi ottenere la data di fine mese utilizzando la funzione LAST_DAY.

-- Ottenere la data di fine mese utilizzando la funzione LAST_DAY
SELECT LAST_DAY('2024-01-15') AS Data_fine_mese;

Anche in questo caso, il risultato sarà il 31 gennaio 2024.

Un altro metodo per calcolare la data di fine mese

Un altro metodo per calcolare la data di fine mese è utilizzare le funzioni DATEADD e DAY combinandole insieme.

Un altro metodo di calcolo in SQL Server

Nell’esempio seguente, calcoliamo la data di fine mese sottraendo un giorno dal primo giorno del mese successivo.

-- Calcolare la data di fine mese utilizzando le funzioni DATEADD e DAY
SELECT DATEADD(DAY, -DAY(DATEADD(MONTH, 1, '2024-01-15')), DATEADD(MONTH, 1, '2024-01-15')) AS Data_fine_mese;

Il risultato sarà il 31 gennaio 2024.

Esempi pratici di calcolo della data di fine mese

Calcolo della data di chiusura di una fattura

Se imposti la data di chiusura di una fattura come l’ultimo giorno del mese, puoi calcolare tale data come segue.

-- Impostare la data di chiusura della fattura come l'ultimo giorno del mese
SELECT LAST_DAY('2024-01-15') AS Data_chiusura;

In questo modo, puoi ottenere l’ultimo giorno del mese dalla data specificata come data di chiusura.

Utilizzando questi metodi, sarà più facile calcolare la data di fine mese nel contesto lavorativo. Successivamente, esamineremo alcune esercitazioni per approfondire la comprensione delle operazioni di aggiunta e sottrazione di date.

Esercitazioni

Approfondisci la comprensione delle operazioni di aggiunta e sottrazione di date attraverso le esercitazioni seguenti. Risolvi questi problemi e verifica le risposte utilizzando SQL.

Esercizio 1: Aggiunta di date

Scrivi una query SQL per aggiungere 15 giorni a una data specifica.

-- Query per l'esercizio 1
SELECT DATEADD(DAY, 15, '2024-06-01') AS Risultato_aggiunta;

Quale sarà il risultato di questa query?

Esercizio 2: Sottrazione di date

Scrivi una query SQL per sottrarre 30 giorni da una data specifica.

-- Query per l'esercizio 2
SELECT DATEADD(DAY, -30, '2024-06-01') AS Risultato_sottrazione;

Quale sarà il risultato di questa query?

Esercizio 3: Calcolo della differenza di date

Scrivi una query SQL per calcolare la differenza in giorni tra il 1 gennaio 2024 e il 31 dicembre 2024.

-- Query per l'esercizio 3
SELECT DATEDIFF(DAY, '2024-01-01', '2024-12-31') AS Differenza_giorni;

Quanti giorni saranno il risultato di questa query?

Esercizio 4: Ottenere il primo giorno del mese successivo

Scrivi una query SQL per ottenere il primo giorno del mese successivo a una data specifica.

-- Query per l'esercizio 4
SELECT DATEADD(MONTH, 1, DATEADD(DAY, 1 - DAY('2024-06-15'), '2024-06-15')) AS Primo_giorno_mese_successivo;

Quale sarà il risultato di questa query?

Esercizio 5: Ottenere la data di fine mese

Scrivi una query SQL per ottenere la data di fine mese del 15 luglio 2024.

-- Query per l'esercizio 5
SELECT LAST_DAY('2024-07-15') AS Data_fine_mese;

Quale sarà il risultato di questa query?

Esercizio 6: Calcolo dell’età

Scrivi una query SQL per calcolare l’età attuale di una persona nata il 15 maggio 1990.

-- Query per l'esercizio 6
SELECT DATEDIFF(YEAR, '1990-05-15', GETDATE()) AS Eta;

Quale sarà il risultato di questa query in termini di età?

Risolvere questi esercizi ti aiuterà a consolidare la tua comprensione delle operazioni sulle date in SQL. Successivamente, riassumeremo i punti chiave su come eseguire l’aggiunta e la sottrazione di date in SQL.

Riepilogo

Ecco i punti chiave da ricordare su come eseguire l’aggiunta e la sottrazione di date in SQL.

Comprensione della sintassi di base

Comprendere la sintassi di base per l’aggiunta e la sottrazione utilizzando la funzione DATEADD o INTERVAL rende facile manipolare le date.

Uso della funzione DATEADD

Utilizzando la funzione DATEADD, puoi aggiungere o sottrarre giorni, mesi o anni in modo flessibile da una data specifica. È possibile sottrarre specificando un valore negativo.

Calcolo della differenza di date con la funzione DATEDIFF

La funzione DATEDIFF ti permette di calcolare facilmente la differenza tra due date. È utile in vari contesti, come il calcolo dell’età o del tempo di elaborazione.

Applicazioni pratiche

Comprendere come ottenere il primo giorno del mese successivo o la data di fine mese, o come estrarre dati da un periodo specifico, ti permetterà di applicare facilmente queste operazioni nel tuo lavoro.

Pratica attraverso esercitazioni

Risolvere esercitazioni ti aiuterà a mettere in pratica l’uso delle date in SQL, consolidando la tua comprensione delle operazioni di manipolazione delle date.

Utilizza queste conoscenze e abilità per migliorare l’efficienza della gestione e analisi dei dati. Con l’esperienza, la padronanza delle operazioni sulle date in SQL amplierà le tue capacità di gestione dei database.

Indice