Menu
Coddy logo textTech

Gestire le date - Parte 3

Fa parte della sezione Fondamenti del percorso SQL di Coddy. Lezione 33 di 72.

SQL offre diverse funzioni utili per manipolare e formattare le date. Ecco alcune funzioni comuni per le date:

  1. DATE() - Converte una stringa in una data
  2. STRFTIME() - Formatta le date in base ai parametri specificati
  3. DATE('now') - Ottiene la data corrente:

Ad esempio, converti una stringa in una data:

SELECT DATE('2023-05-15 13:45:00')
-- Restituisce: 2023-05-15

SELECT DATE('now')
-- Restituisce la data corrente

Ad esempio, estrai l'anno, il mese e il giorno dalla data:

-- Ottieni l'anno
SELECT STRFTIME('%Y', '2023-05-15')
-- Restituisce: 2023

-- Ottieni il mese
SELECT STRFTIME('%m', '2023-05-15')
-- Restituisce: 05

-- Ottieni il giorno
SELECT STRFTIME('%d', '2023-05-15')
-- Restituisce: 15

-- Mostra la combinazione di anno e giorno (si può usare qualsiasi separatore)
SELECT STRFTIME('%Y:%d', '2023-05-15')
-- Restituisce: 2023:15

-- Usa invece un trattino come separatore
SELECT STRFTIME('%d-%m-%Y', '2023-05-15')
-- Restituisce: 15-05-2023

-- Ottieni il giorno della settimana
SELECT STRFTIME('%w', '2023-05-15')
-- Restituisce: 1 (lunedì; domenica è 0)

Specificatori di formato comuni:

  • %Y: Anno (4 cifre)
  • %m: Mese (01-12)
  • %d: Giorno del mese (01-31)
  • %w: Giorno della settimana (0-6, la domenica è 0)
  • %H: Ora (00-23)
  • %M: Minuto (00-59)
  • %S: Secondo (00-59)

Puoi usare qualsiasi carattere separatore tra gli specificatori (ad es. -, :, /). Per esempio, STRFTIME('%d-%m-%Y', date) e STRFTIME('%d:%m:%Y', date) combinano entrambi giorno, mese e anno, ma con separatori diversi.

Puoi combinare queste funzioni nelle query:

-- Trova tutti i record dell'anno corrente
SELECT * FROM table1
WHERE STRFTIME('%Y', date_column) = STRFTIME('%Y', 'now')
challenge icon

Sfida

Facile

Tabelle e colonne disponibili:

  • events: id, start, end

Scrivi una query che mostri:

  • L'ID dell'evento
  • La data di inizio formattata come "DD-MM-YYYY". Chiama questa colonna formatted_start
  • La data di fine formattata come "DD-MM-YYYY". Chiama questa colonna formatted_end
  • La durata in giorni tra l'inizio e la fine, arrotondata al numero intero più vicino. Chiama questa colonna duration_days

Filtra solo le righe in cui l'anno della colonna start è 2009 (STRFTIME() restituisce una stringa e non un numero).

Ordina i risultati per durata in giorni in ordine decrescente.

Promemoria: per calcolare la differenza tra date usa: JULIANDAY(end) - JULIANDAY(start) e usa ROUND() per arrotondare ai numeri interi.

Provalo tu

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Playground SQL