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:
DATE()- Converte una stringa in una dataSTRFTIME()- Formatta le date in base ai parametri specificatiDATE('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 correnteAd 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')Sfida
FacileTabelle 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
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Altre parole chiave
La parola chiave INLa parola chiave BETWEENLa parola chiave LIKELa parola chiave ASRiepilogo - Modelli di telefoni cellulari2Condizioni
Basi delle condizioniLa parola chiave ANDLa parola chiave ORLa parola chiave NOTCombinare più condizioniParentesiValori booleani5Operazioni aritmetiche
Operatori matematiciColonne matematicheL’operazione moduloLa funzione ROUND()3Formato di restituzione specifico
Valori nullOrdinare i risultati Parte 1Ordinare i risultati Parte 2Riepilogo - Azienda di sicurezza informaticaLimitare il numero di recordRiepilogo - Fabbrica di veicoli6Sfide introduttive
Ripasso - Elezione parlamentareRipasso - Arresto di un criminale da parte della poliziaRipasso - Contenitore per bevande da barRipasso - Progetta nuove colonne9Tabelle multiple
JOIN di base, parte 1JOIN di base, parte 2Riepilogo - JOINSelf joinRiepilogo - Self joinUNIONSemplificare le query, parola chiave WITHRiepilogo - Query con WITHRiepilogo - Impresa edile immobiliare12Funzioni finestra, parte 2
Funzioni RANK e DENSE_RANKRipasso: RANK e DENSE_RANKFunzione NTILEFunzioni di aggregazioneCriteri ROWS e RANGEEsercitati da solo: Playground SQL