Funzioni data

Disponibile

3.1 Elenco delle funzioni per lavorare con data e ora

Data e ora sono uno dei tipi più comuni di dati archiviati nei database. Ecco perché l'elenco delle funzioni per lavorare con loro è molto ampio. Ecco i più popolari:

# Funzione Descrizione
1 CURDATA() Restituisce la data corrente
2 CURTIME() Restituisce l'ora corrente
3 ORA(), ORALOCALE() Restituisce la data e l'ora correnti
4 ANNO() Restituisce l'anno dalla data
5 MESE() Restituisce il mese da una data
6 GIORNO(), GIORNOMESE() Restituisce il giorno da una data
7 ORA() Restituisce solo ore dal tempo
8 MINUTI() Annuncia minuti dal tempo
9 SECONDO() Restituisce secondi dal tempo
10 NOMEGIORNO() Restituisce il nome del giorno della settimana: lunedì, ...
undici NOMEMESE() Restituisce il nome del mese: gennaio, ...
12 SETTIMANA() Restituisce la settimana da una data
13 GIORNO SETTIMANALE() Restituisce il numero del giorno della settimana: lunedì - 0, martedì - 1
14 SETTIMANA ANNO() Restituisce il numero della settimana dell'anno
15 GIORNO DELLA SETTIMANA() Restituisce il numero del giorno della settimana: domenica - 1, lunedì - 2
16 GIORNO DELL'ANNO() Restituisce il giorno dell'anno: 1-366
17 DATA() Restituisce solo la data da un oggetto "datetime".
18 AGGIUNGI() Aggiunge giorni a una data
19 SUBDATA() Sottrae giorni da una data
20 ADDTIME() Aggiunge di volta in volta
21 SUBTIME() Sottrae il tempo dal tempo

Ho deliberatamente raggruppato le funzioni in piccoli gruppi per facilitare la comprensione di come lavorarci. Di seguito considereremo una funzione per ciascun gruppo.

Puoi trovare un elenco completo delle funzioni per lavorare con data e ora al link: https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html

3.2 Funzioni di chiamata

A proposito, dal momento che stiamo imparando così tante funzioni, penso sia utile menzionare che l'operatore SELECTnon deve essere utilizzato con FROM. Può restituire il valore di qualsiasi espressione. La cui visione generale è data dal modello:

SELECT expression

E se vuoi chiamare qualche funzione, allora devi scrivere codice come:

SELECT function(options)

Di seguito darò alcuni esempi del funzionamento dell'operatore SELECTsenza ricorrere a tabelle:

# Richiesta Risultato
1 SELEZIONA 1+1 2
2 SELEZIONA 13 MODULO 5 3
3 SELEZIONA CASUALE() 0.20771444235715497
4 SELEZIONA CURDATA() 2022-06-04
5 SELEZIONA TEMPO CURVA() 00:06:02
6 SELEZIONA ORA() 2022-06-04 00:06:43

E, come puoi vedere, nella tabella sopra, per ottenere la data e l'ora correnti, devi solo utilizzare una delle funzioni:

  • CURDATE()- data odierna;
  • CURTIME()- ora attuale;
  • NOW()– data e ora correnti.

3.3 Raggruppamento dei dati per anno e mese

Ricordiamo la nostra tabella delle attività con le attività per i dipendenti. Proviamo a raggruppare le attività di questa tabella per anni. Per fare questo usiamo la funzione YEAR(), che restituisce l'anno dalla data che le è passata.

La prima versione della nostra query sarà simile a questa:

SELECT
    id,
    employee_id ,
    name,
    YEAR(deadline) AS year,
    deadline
FROM task

Il risultato di questa query sarà:

id ID Dipendente nome anno scadenza
1 1 Risolto un bug sul frontend 2022 2022-06-01
2 2 Risolto un bug sul backend 2022 2022-06-15
3 5 Compra il caffè 2022 2022-07-01
4 5 Compra il caffè 2022 2022-08-01
5 5 Compra il caffè 2022 2022-09-01
6 (NULLO) Pulisci l'ufficio (NULLO) (NULLO)
7 4 Goditi la vita (NULLO) (NULLO)
8 6 Goditi la vita (NULLO) (NULLO)

Possiamo vedere che tutte le righe hanno lo stesso anno, quindi usiamo due campi: anno e mese. La seconda versione della nostra query sarà simile a questa:

SELECT
    id,
    employee_id ,
    name,
    YEAR(deadline) AS year,
    MONTH(deadline) AS month,
    deadline
FROM task

Il risultato di questa query sarà:

id ID Dipendente nome anno mese scadenza
1 1 Risolto un bug sul frontend 2022 6 2022-06-01
2 2 Risolto un bug sul backend 2022 6 2022-06-15
3 5 Compra il caffè 2022 7 2022-07-01
4 5 Compra il caffè 2022 8 2022-08-01
5 5 Compra il caffè 2022 9 2022-09-01
6 (NULLO) Pulisci l'ufficio (NULLO) (NULLO) (NULLO)
7 4 Goditi la vita (NULLO) (NULLO) (NULLO)
8 6 Goditi la vita (NULLO) (NULLO) (NULLO)

Non ti dirò come raggruppare le attività per anno e mese: l'hai già studiato: usa l'operatore GROUP BY.

Commenti
  • Popolari
  • Nuovi
  • Vecchi
Devi avere effettuato l'accesso per lasciare un commento
Questa pagina non ha ancora commenti