Torna all'elenco degli articoli Articoli
Tempo di lettura: 9 minuti

La macchina del tempo SQL: Come le query sbloccano il passato (e predicono il futuro)

L'SQL non serve solo a recuperare i dati, ma è un modo potente per esplorare cosa è successo e quando. Se state monitorando le iscrizioni degli utenti, le vendite o l'attività di un sistema, imparare a lavorare con i dati basati sul tempo vi aiuta a scoprire gli schemi, ad analizzare le tendenze e a prendere decisioni più intelligenti. Questa guida per principianti mostra come ordinare, filtrare e raggruppare i dati per comprendere il passato e prepararsi al futuro.

Ogni serie di dati ha una storia e il tempo è spesso il protagonista. Le date ci dicono quando un cliente si è iscritto, quando è stata effettuata una vendita o quando è stato spedito un prodotto. Il tempo aggiunge significato e contesto ai numeri grezzi. Senza di esso, si può vedere cosa è successo, ma non quando o con quale frequenza, e questo è ciò che trasforma i dati semplici in veri e propri approfondimenti.

Per esempio, immaginate di analizzare il traffico di un sito web o le performance di vendita. Il numero totale di visite o di acquisti può sembrare impressionante di per sé, ma quando lo si suddivide per data, si possono vedere gli schemi: i fine settimana sono più lenti, le campagne pubblicitarie determinano picchi e le tendenze stagionali emergono. Questo è il tipo di informazioni su cui le aziende fanno affidamento per prendere decisioni migliori.

Se siete alle prime armi con SQL, imparare a lavorare con i dati temporali è una delle competenze più preziose che possiate acquisire. È qui che l'analisi inizia a sembrare reale. Imparerete a ordinare i risultati per data, a filtrare gli ultimi 30 giorni o a confrontare le attività mensili, il tutto utilizzando query semplici e leggibili.

Se siete agli inizi, il corso Funzioni SQL standard è un ottimo modo per imparare a lavorare con date e orari. Copre tutte le nozioni di base per filtrare, formattare e calcolare con i dati temporali, abilità che utilizzerete in quasi tutte le query SQL del mondo reale.

Vediamo come SQL vi aiuta a esplorare il passato e come può aiutarvi a preparare il futuro.

Lavorare con le colonne temporali in SQL

La maggior parte dei set di dati include colonne relative al tempo, come created_at, order_date o login_time. Queste colonne aiutano a tenere traccia di quando le cose accadono e sono memorizzate utilizzando tipi di dati specifici.

Ecco quelle con cui si lavora più spesso:

  • DATE - Memorizza solo la data del calendario, come '2025-10-09'. Ideale quando si ha bisogno solo del giorno, non dell'ora esatta.
  • TIME - Memorizza solo l'ora del giorno, come '14:33:00'. Utile per cose come gli orari di apertura dei negozi o gli eventi programmati nello stesso giorno.
  • DATETIME / TIMESTAMP - Memorizza sia la data che l'ora, come '2025-10-09 14:33:00'. Questi tipi sono simili e spesso vengono utilizzati in modo intercambiabile a seconda del sistema di database. Vengono utilizzati quando è necessario registrare il momento esatto in cui è accaduto qualcosa.

In SQL, le date e gli orari sono scritti in un formato standard, in modo che il database possa comprenderli. Il formato più comune è: AAAA-MM-GG HH:MM:SS. Ciò significa che:

  • YYYY = anno (ad esempio, 2025)
  • MM = mese (ad esempio, 10 per ottobre)
  • DD = giorno (ad esempio, 09)
  • HH:MM:SS = ora nel formato 24 ore (ad esempio, 14:33:00 significa 2:33 PM).

Ad esempio:

  • '2025-10-09' è una data (9 ottobre 2025)
  • '14:33:00' è un'ora (2:33 PM)
  • '2025-10-09 14:33:00' è una data e un'ora complete

Quando si scrivono le query, è possibile utilizzare direttamente questi valori, detti letterali di stringa, per filtrare o confrontare dati basati sul tempo.

Anche a livello di principianti, sapere come lavorare con questi valori aiuta a filtrare le attività recenti, a ordinare per orario e a raggruppare i risultati per giorno o ora.

💡 Volete fare pratica con dati reali? Provate il nostro Funzioni SQL standard per imparare a usare i valori di data e ora nelle query, senza bisogno di alcuna impostazione.

Ordinare i dati in base all'ora

Quando si lavora con dati basati sul tempo, spesso è utile ordinare gli eventi in ordine cronologico, dal più vecchio al più recente o viceversa. SQL semplifica questa operazione con la clausola ORDER BY.

Supponiamo di avere una tabella di vendite con una colonna sale_date. È possibile utilizzare ORDER BY per ordinare i risultati in base alla colonna della data e controllare la direzione della cronologia.

Mostrare gli eventi in ordine cronologico

Per iniziare dall'inizio e vedere le prime vendite, usare ORDER BY sale_date ASC:

SELECT *
FROM sales
ORDER BY sale_date ASC;

Questa query ordina i risultati in ordine crescente, partendo dalla data più vecchia e andando avanti nel tempo.

Esempio di risultato:

sale_idproductamountsale_date
101Laptop950.002025-10-01 09:12:00
102Monitor210.002025-10-03 11:45:00
103Keyboard80.002025-10-07 12:05:00

Questa vista è utile quando si vuole risalire all'inizio, ad esempio per esaminare le prime vendite del mese o i primi utenti che si sono iscritti.

Mostra prima i record più recenti (ordine decrescente)

Per visualizzare prima le vendite più recenti, utilizzare ORDER BY sale_date DESC:

SELECT *
FROM sales
ORDER BY sale_date DESC;

DESC sta per ordine discendente, cioè ordina dalla data più recente alla prima.

Esempio di risultato:

sale_idproductamountsale_date
105Headphones120.002025-10-09 14:33:00
104Mouse45.002025-10-08 16:10:00
103Keyboard80.002025-10-07 12:05:00

Questo è particolarmente utile quando si è interessati a ciò che è appena accaduto, come gli ultimi ordini, le ultime iscrizioni o gli ultimi aggiornamenti.

Cosa fa ORDER BY

La clausola ORDER BY ordina le righe del risultato della query in base a una o più colonne.

  • Usare ASC (ascendente) per andare dalla prima all'ultima.
  • Usare DESC (decrescente) per andare dal più recente al più recente.

È possibile utilizzare ORDER BY con numeri, testo e date, ma quando si lavora con il tempo, aiuta a capire come i dati si sviluppano nel tempo.

L'ordinamento è uno dei modi più semplici per far sì che i dati raccontino una storia.

&#128294 Volete provare voi stessi? Nel nostro Funzioni SQL standard corso, imparerete a ordinare e filtrare i dati utilizzando query SQL reali ed esempi concreti, il tutto nel vostro browser, senza bisogno di installazione.

Filtrare i dati del passato

A volte non si è interessati a ciò che sta accadendo ora, ma si vuole guardare indietro e analizzare l'attività passata. Forse state rispondendo a domande come:

  • Cosa è successo durante la promozione del mese scorso?
  • Com'era il traffico nel secondo trimestre dell'anno scorso?
  • Come erano le vendite prima del lancio del nuovo prodotto?

Con SQL è possibile filtrare facilmente per periodi specifici del passato utilizzando la clausola WHERE e le condizioni di data.

Esempio: Filtrare per un periodo di tempo fisso nel passato

Supponiamo di voler trovare tutte le vendite avvenute nel settembre 2025. Ecco come fare:

SELECT *
FROM sales
WHERE sale_date >= '2025-09-01'
  AND sale_date < '2025-10-01';

Questa query fornisce tutto ciò che va dal 1° settembre fino al 1° ottobre, escluso. Questo è uno schema SQL comune quando si filtra per mesi interi.

È possibile modificare le date per concentrarsi su:

  • Una settimana o un mese specifico nel passato
  • Un trimestre o un anno precedente
  • Il periodo precedente a un evento noto (ad esempio, il lancio di un prodotto o una campagna).

Esempio: Filtro per le attività precedenti a una certa data

Supponiamo di voler vedere tutto ciò che è accaduto prima del 1° agosto 2025:

SELECT *
FROM sales
WHERE sale_date < '2025-08-01';

In questo modo si ottiene una visione completa dei record storici prima di un determinato momento.

Perché è importante

Il filtro per gli eventi passati aiuta a:

  • Analizzare le tendenze nel tempo
  • Confrontare le prestazioni passate e presenti
  • Misurare l'impatto dei cambiamenti (ad esempio, prezzi, campagne, aggiornamenti dei prodotti).

È la base di qualsiasi analisi dei dati storici.

💡 Imparerete a scrivere questi tipi di filtri basati sul tempo nei nostri corsi. Analisi dei trend dei ricavi con SQL corsi.

Raggruppare i dati per tempo per individuare le tendenze

Filtrare e ordinare in base al tempo è utile, ma se si vogliono individuare le tendenze, è necessario raggruppare i dati su periodi di tempo significativi: per mese, settimana o ora.

Nei database reali, le colonne temporali come sale_date sono spesso memorizzate come timestamp completi, non solo come date: 2025-10-07 12:05:00.

Se si cerca di raggruppare in base a questo timestamp completo, ogni riga potrebbe finire in un gruppo a sé stante, perché l'ora è diversa al secondo.

Raggruppamento per mese

Supponiamo di voler contare quante vendite sono avvenute ogni mese. È necessario estrarre solo il mese e l'anno dal timestamp. Ecco come fare:

In PostgreSQL:

SELECT DATE_TRUNC('month', sale_date) AS month,
       COUNT(*) AS total_sales
FROM sales
GROUP BY DATE_TRUNC('month', sale_date)
ORDER BY month;

In MySQL:

SELECT DATE_FORMAT(sale_date, '%Y-%m') AS month,
       COUNT(*) AS total_sales
FROM sales
GROUP BY DATE_FORMAT(sale_date, '%Y-%m')
ORDER BY month;

Output di esempio:

monthtotal_sales
2025-07310
2025-08420
2025-09380

In questo modo si ottiene un quadro molto più chiaro di come le vendite cambiano nel tempo, mese per mese, senza essere sommersi da troppi dettagli.

Perché è importante

Raggruppare per mese (o settimana, o ora) aiuta a:

  • Seguire le tendenze nel tempo
  • Confrontare le prestazioni tra periodi diversi
  • Identificare i punti alti e bassi dell'attività
  • Preparare i dati per grafici e report

Questa tecnica verrà utilizzata costantemente nei report e nei cruscotti del mondo reale.

?? Volete fare pratica con query reali come questa? Il nostro Analisi dei trend dei ricavi con SQL vi mostra come raggruppare per intervalli di tempo e scavare nei dati aziendali reali per individuare gli schemi.

Dove porta: Prevedere le tendenze

È qui che le cose si fanno interessanti. Quando iniziate a notare degli schemi nei vostri dati storici, come un picco settimanale di iscrizioni di utenti o cambiamenti stagionali negli acquisti, non state più solo riportando il passato. State iniziando a prevedere cosa potrebbe accadere in seguito.

Questo è l'inizio dell'analisi delle tendenze. Sebbene una previsione più approfondita richieda di solito strumenti di BI o linguaggi di programmazione come Python, tutto inizia con solide query SQL.

Quanto più si riesce a lavorare con i dati temporali, tanto più si è sicuri delle proprie analisi.

Esplorare il passato (e il futuro) con SQL

L'SQL non offre solo l'accesso ai dati, ma anche una linea temporale. Potete guardare indietro a ciò che è successo ieri, il mese scorso o l'anno scorso. È possibile raggruppare gli eventi, individuare le tendenze e persino iniziare a prevedere cosa accadrà in futuro.

E la parte migliore? Non avete bisogno di una macchina del tempo, ma solo di alcune query ben scritte.

Se siete pronti a mettere in pratica queste abilità, LearnSQL.it offre corsi interattivi che vi guidano passo dopo passo nelle query basate sul tempo:

  • Funzioni SQL standard - Imparate a lavorare con date, orari, testi e numeri utilizzando le funzioni SQL integrate, perfette per manipolare e analizzare i dati temporali.
  • Analisi dei trend dei ricavi con SQL - Scoprite come calcolare le variazioni mese per mese, i tassi di crescita e le entrate cumulative utilizzando dati aziendali reali.
  • Analisi del comportamento dei clienti con SQL - Analizzate il comportamento degli utenti nel tempo, dai primi acquisti alle attività a lungo termine, e scoprite come prendere decisioni più intelligenti.

Tutti i corsi sono adatti ai principianti, basati su browser e progettati per aiutarvi ad applicare SQL in scenari reali, senza bisogno di alcuna configurazione.

Siete pronti a esplorare il passato (e forse anche a prevedere il futuro)?