🧚 Ascolta! Beekeeper Studio è una GUI per database veloce, moderna e open source Scarica
19 febbraio 2024 Di Matthew Rathbone

Introduzione

Quando lavori con i database SQL, PostgreSQL compreso, saper manipolare e interrogare dati di data e ora è una competenza fondamentale. Spesso le applicazioni richiedono analisi o report focalizzati sui giorni feriali, escludendo i weekend. In questo tutorial vedremo come selezionare i record solo in base ai giorni feriali, sfruttando le funzioni di data e ora di PostgreSQL.

Capire data e ora in PostgreSQL

PostgreSQL offre un set completo di funzioni e operatori per lavorare con date e orari, rendendo semplice eseguire query complesse, come selezionare le righe in base ai giorni feriali.

Tipi di dati data/ora

Prima di passare alle query sui giorni feriali, è utile conoscere i principali tipi di dati data/ora di PostgreSQL:

  • DATE: per le date (anno, mese, giorno).
  • TIMESTAMP: per data e ora, senza fuso orario.
  • TIMESTAMPTZ: per data e ora, con fuso orario.
  • TIME: solo per l'ora, senza fuso orario.
  • TIMETZ: solo per l'ora, con fuso orario.

La funzione EXTRACT

Una funzione chiave per lavorare con i giorni feriali è EXTRACT. Ti permette di estrarre parti di un valore data/ora, come il giorno della settimana.

Interrogare solo i giorni feriali

Per selezionare i record che cadono nei giorni feriali (dal lunedì al venerdì), puoi usare la funzione EXTRACT per ottenere il giorno della settimana da una data, dove la domenica è 0 e il sabato è 6.

Selezione base dei giorni feriali

Ecco come filtrare le righe per includere solo i giorni feriali:

-- Assuming a table 'events' with a 'date' column
SELECT *
FROM events
WHERE EXTRACT(DOW FROM date) BETWEEN 1 AND 5;

Questa query seleziona le righe della tabella events in cui il giorno della settimana della colonna date è compreso tra 1 (lunedì) e 5 (venerdì), estremi inclusi.

Output:

id date event_name
1 2024-03-04 Lancio del progetto
2 2024-03-05 Riunione del team

Scenari complessi: join tra tabelle e filtro per giorni feriali

Vediamo un esempio più complesso in cui devi fare il join tra tabelle e filtrare comunque per giorni feriali.

-- Assuming another table 'event_details' that references 'events'
SELECT e.*, ed.detail
FROM events e
JOIN event_details ed ON e.id = ed.event_id
WHERE EXTRACT(DOW FROM e.date) BETWEEN 1 AND 5;

Questa query non solo filtra gli eventi per giorni feriali, ma fa anche il join con la tabella event_details per recuperare i dati correlati.

Output:

id date event_name detail
1 2024-03-04 Lancio del progetto Riunione di kick-off
2 2024-03-05 Riunione del team Revisione mensile

Casi d'uso

Analizzare le ore di lavoro

Per le aziende che tengono traccia delle ore di lavoro, escludere i weekend può offrire spunti su produttività e costo del lavoro.

-- Assuming a table 'work_hours' with 'employee_id', 'date', and 'hours_worked'
SELECT employee_id, SUM(hours_worked) AS total_hours
FROM work_hours
WHERE EXTRACT(DOW FROM date) BETWEEN 1 AND 5
GROUP BY employee_id;

Questa query calcola il totale delle ore lavorate da ogni dipendente nei giorni feriali.

Output:

employee_id total_hours
101 40
102 38

Pianificazione di eventi

Per chi organizza eventi, concentrarsi sui giorni feriali può aiutare a organizzare e programmare gli eventi in modo più efficiente.

-- Finding available event dates during weekdays
SELECT date
FROM events
WHERE EXTRACT(DOW FROM date) BETWEEN 1 AND 5
AND date > CURRENT_DATE
ORDER BY date;

Questo aiuta a individuare le prossime date feriali per pianificare eventi futuri.

Output:

date
2024-03-06
2024-03-07

Conclusione

Selezionare i record in base ai giorni feriali in PostgreSQL è una tecnica utile per l'analisi dei dati e la logica applicativa. Sfruttando le funzioni di data e ora di PostgreSQL, in particolare EXTRACT, puoi filtrare facilmente i dati secondo le tue esigenze. Che tu stia analizzando operazioni aziendali, pianificando eventi o semplicemente gestendo calendari, saper interrogare i giorni feriali arricchirà le tue competenze sui database.

Esercitati con questi esempi, esplora la documentazione di PostgreSQL per altre funzioni data/ora e ricava più informazioni dai tuoi dati.

Buone query!

Beekeeper Studio è una GUI per database gratuita & open source

Il miglior strumento per query & editor SQL che abbia mai usato. Offre tutto ciò che mi serve per gestire il mio database. - ⭐⭐⭐⭐⭐ Mit

Beekeeper Studio è veloce, intuitivo e facile da usare. Beekeeper supporta tantissimi database e funziona alla grande su Windows, Mac e Linux.

La versione Linux di Beekeeper è completa al 100%, senza tagli e senza compromessi sulle funzionalità.

Cosa dicono gli utenti di Beekeeper Studio

★★★★★
"Beekeeper Studio ha sostituito completamente il mio vecchio workflow SQL. È veloce, intuitivo e rende di nuovo piacevole lavorare con i database."
— Alex K., Database Developer
★★★★★
"Ho provato molte GUI per database, ma Beekeeper trova il perfetto equilibrio tra funzionalità e semplicità. Funziona e basta."
— Sarah M., Full Stack Engineer

Pronto a migliorare il tuo workflow SQL?

download Scarica gratis