Εισαγωγή
Όταν δουλεύεις με βάσεις δεδομένων SQL, όπως η PostgreSQL, ο χειρισμός και τα queries σε δεδομένα ημερομηνίας και ώρας είναι βασική δεξιότητα. Συχνά οι εφαρμογές χρειάζονται αναλύσεις ή αναφορές που εστιάζουν στις καθημερινές, εξαιρώντας τα Σαββατοκύριακα. Σε αυτόν τον οδηγό θα δεις πώς να επιλέγεις εγγραφές μόνο για καθημερινές, χρησιμοποιώντας τις συναρτήσεις ημερομηνίας και ώρας της PostgreSQL.
Κατανοώντας την ημερομηνία και την ώρα στην PostgreSQL
Η PostgreSQL προσφέρει ένα πλήρες σύνολο συναρτήσεων και τελεστών για ημερομηνίες και ώρες, κάνοντας εύκολη την εκτέλεση σύνθετων queries, όπως η επιλογή γραμμών με βάση τις καθημερινές.
Τύποι δεδομένων ημερομηνίας/ώρας
Πριν περάσεις στα queries για καθημερινές, καλό είναι να γνωρίζεις τους βασικούς τύπους δεδομένων ημερομηνίας/ώρας στην PostgreSQL:
-
DATE: Για ημερομηνίες (έτος, μήνας, ημέρα). -
TIMESTAMP: Για ημερομηνία και ώρα, χωρίς ζώνη ώρας. -
TIMESTAMPTZ: Για ημερομηνία και ώρα, με ζώνη ώρας. -
TIME: Μόνο για ώρα, χωρίς ζώνη ώρας. -
TIMETZ: Μόνο για ώρα, με ζώνη ώρας.
Η συνάρτηση EXTRACT
Μια βασική συνάρτηση για τις καθημερινές είναι η EXTRACT. Σου επιτρέπει να εξάγεις τμήματα μιας τιμής ημερομηνίας/ώρας, όπως την ημέρα της εβδομάδας.
Queries μόνο για καθημερινές
Για να επιλέξεις εγγραφές που πέφτουν σε καθημερινές (Δευτέρα έως Παρασκευή), μπορείς να χρησιμοποιήσεις τη συνάρτηση EXTRACT για να πάρεις την ημέρα της εβδομάδας από μια ημερομηνία, όπου η Κυριακή είναι 0 και το Σάββατο 6.
Βασική επιλογή καθημερινών
Δες πώς μπορείς να φιλτράρεις γραμμές ώστε να περιλαμβάνουν μόνο καθημερινές:
-- Assuming a table 'events' with a 'date' column
SELECT *
FROM events
WHERE EXTRACT(DOW FROM date) BETWEEN 1 AND 5;
Αυτό το query επιλέγει γραμμές από τον πίνακα events όπου η ημέρα της εβδομάδας της στήλης date είναι από 1 (Δευτέρα) έως και 5 (Παρασκευή).
Αποτέλεσμα:
| id | date | event_name |
|---|---|---|
| 1 | 2024-03-04 | Project Launch |
| 2 | 2024-03-05 | Team Meeting |
Σύνθετα σενάρια: Join πινάκων και φιλτράρισμα κατά καθημερινές
Ας δούμε ένα πιο σύνθετο παράδειγμα, όπου χρειάζεται να κάνεις join πινάκων και παράλληλα να φιλτράρεις κατά καθημερινές.
-- 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;
Αυτό το query όχι μόνο φιλτράρει τα events κατά καθημερινές, αλλά κάνει και join με τον πίνακα event_details για να φέρει τα σχετικά δεδομένα.
Αποτέλεσμα:
| id | date | event_name | detail |
|---|---|---|---|
| 1 | 2024-03-04 | Project Launch | Kick-off meeting |
| 2 | 2024-03-05 | Team Meeting | Monthly review |
Περιπτώσεις χρήσης
Ανάλυση ωρών εργασίας
Για επιχειρήσεις που καταγράφουν ώρες εργασίας, η εξαίρεση των Σαββατοκύριακων μπορεί να δώσει χρήσιμα συμπεράσματα για την παραγωγικότητα και το κόστος εργασίας.
-- 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;
Αυτό το query υπολογίζει τις συνολικές ώρες εργασίας κάθε υπαλλήλου τις καθημερινές.
Αποτέλεσμα:
| employee_id | total_hours |
|---|---|
| 101 | 40 |
| 102 | 38 |
Προγραμματισμός εκδηλώσεων
Για όσους οργανώνουν εκδηλώσεις, η εστίαση στις καθημερινές βοηθά στην πιο αποδοτική οργάνωση και προγραμματισμό.
-- 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;
Έτσι εντοπίζεις τις επερχόμενες καθημερινές για να προγραμματίσεις μελλοντικές εκδηλώσεις.
Αποτέλεσμα:
| date |
|---|
| 2024-03-06 |
| 2024-03-07 |
Συμπέρασμα
Η επιλογή εγγραφών με βάση τις καθημερινές στην PostgreSQL είναι μια χρήσιμη τεχνική για ανάλυση δεδομένων και λογική εφαρμογών. Αξιοποιώντας τις συναρτήσεις ημερομηνίας και ώρας της PostgreSQL, ειδικά την EXTRACT, μπορείς εύκολα να φιλτράρεις δεδομένα σύμφωνα με τις ανάγκες σου. Είτε αναλύεις επιχειρηματικές λειτουργίες, είτε οργανώνεις εκδηλώσεις, είτε απλώς διαχειρίζεσαι προγράμματα, το να ξέρεις πώς να κάνεις queries για καθημερινές θα ενισχύσει τις δεξιότητές σου στις βάσεις δεδομένων.
Εξασκήσου με αυτά τα παραδείγματα, εξερεύνησε την τεκμηρίωση της PostgreSQL για περισσότερες συναρτήσεις ημερομηνίας/ώρας και βγάλε περισσότερα συμπεράσματα από τα δεδομένα σου.
Καλά queries!
Το Beekeeper Studio είναι ένα δωρεάν & open source GUI για βάσεις δεδομένων
Το καλύτερο εργαλείο για SQL queries & επεξεργασία που έχω χρησιμοποιήσει ποτέ. Μου δίνει ό,τι χρειάζομαι για να διαχειρίζομαι τη βάση δεδομένων μου. - ⭐⭐⭐⭐⭐ Mit
Το Beekeeper Studio είναι γρήγορο, εύχρηστο και κατανοητό με την πρώτη ματιά. Υποστηρίζει πάρα πολλές βάσεις δεδομένων και δουλεύει άψογα σε Windows, Mac και Linux.
Τι λένε οι χρήστες για το Beekeeper Studio
"Το Beekeeper Studio αντικατέστησε πλήρως την παλιά μου ροή εργασίας με SQL. Είναι γρήγορο, εύχρηστο και κάνει τη δουλειά με βάσεις δεδομένων ξανά απολαυστική."
"Έχω δοκιμάσει πολλά GUI για βάσεις δεδομένων, αλλά το Beekeeper βρίσκει την τέλεια ισορροπία ανάμεσα σε δυνατότητες και απλότητα. Απλώς δουλεύει."