Έχεις εκνευριστεί ποτέ προσπαθώντας να μορφοποιήσεις ημερομηνίες στην Oracle Database; Είναι ένα συνηθισμένο εμπόδιο. Μην ανησυχείς, αυτός ο οδηγός θα σου ξεκαθαρίσει τα πράγματα.
Εισαγωγή στον τύπο δεδομένων DATE της Oracle
Πριν ξεκινήσουμε τη μορφοποίηση, είναι σημαντικό να καταλάβεις τον τύπο δεδομένων DATE στην Oracle. Ο τύπος DATE χρησιμοποιείται για την αποθήκευση της ημερομηνίας και της ώρας μιας συγκεκριμένης στιγμής. Σε αντίθεση με κάποιες βάσεις δεδομένων (ναι, εσένα εννοούμε, MySQL), ο τύπος DATE της Oracle περιλαμβάνει και πληροφορίες ώρας μαζί με την ημερομηνία.
Η μορφή αποθήκευσης ενός τύπου DATE δεν είναι άμεσα ορατή στους developers, αλλά η Oracle παρέχει μια συνάρτηση με το όνομα TO_CHAR, που μπορείς να χρησιμοποιήσεις για να εμφανίσεις την ημερομηνία σε ευανάγνωστη μορφή.
SELECT TO_CHAR(sysdate, 'DD/MM/YYYY HH24:MI:SS') "Current Date" FROM dual;
Αυτό το SQL query θα επιστρέψει την τρέχουσα ημερομηνία και ώρα του συστήματος στη μορφή ‘DD/MM/YYYY HH24:MI:SS’.
Κατανόηση των κωδικών μορφής ημερομηνίας της Oracle
Η πραγματική μαγεία στη μορφοποίηση ημερομηνιών της Oracle βρίσκεται στους διάφορους διαθέσιμους κωδικούς μορφής. Έχεις ήδη δει στην πράξη τους ‘DD’, ‘MM’, ‘YYYY’, ‘HH24’, ‘MI’ και ‘SS’. Παρακάτω θα βρεις μια λίστα με μερικούς ακόμα χρήσιμους κωδικούς μορφής:
- DD: Ημέρα του μήνα (1-31)
- MM: Μήνας (01-12. Ο Ιανουάριος είναι 01)
- YYYY: έτος με 4 ψηφία
- YY: Τα 2 τελευταία ψηφία του έτους
- HH24: Ώρα της ημέρας (00-23)
- MI: Λεπτό (00-59)
- SS: Δευτερόλεπτο (00-59)
Συνδυάζοντας αυτούς τους κωδικούς, μπορούμε να μορφοποιήσουμε ημερομηνίες με πολλούς τρόπους. Για παράδειγμα, αν ήθελες την ημερομηνία στη μορφή ‘μήνας ημέρα, έτος’, θα μπορούσες να χρησιμοποιήσεις την παρακάτω εντολή:
SELECT TO_CHAR(sysdate, 'MM DD, YYYY') "Current Date" FROM dual; -- 01 22, 1983
Χρήση της TO_DATE για μορφοποίηση
Εναλλακτικά, αν έχεις ένα string που αναπαριστά μια ημερομηνία και θέλεις να το μετατρέψεις σε τύπο δεδομένων DATE, θα χρησιμοποιήσεις τη συνάρτηση TO_DATE:
SELECT TO_DATE('2021/07/16', 'YYYY/MM/DD') "Formatted Date" FROM dual;
Αυτό θα επιστρέψει το αποτέλεσμα ‘16-JULY-21’ – την προεπιλεγμένη μορφή του DATE της Oracle. Σημείωσε ότι η συνάρτηση TO_DATE σου επιτρέπει να ορίσεις τη μορφή του string εισόδου, ώστε η Oracle να μπορεί να το μετατρέψει με ακρίβεια σε τύπο δεδομένων DATE.
Μορφοποίηση ημερομηνιών με εναλλακτικές μορφές
Δεν περιορίζεσαι στην αγγλική γλώσσα ή στο γρηγοριανό ημερολόγιο όσον αφορά τις μορφές ημερομηνίας στην Oracle. Μπορείς να χρησιμοποιήσεις διαφορετική γλώσσα και περιοχή ημερομηνίας για να μορφοποιήσεις την ημερομηνία σου:
SELECT TO_CHAR(sysdate, 'MONTH DD, YYYY', 'NLS_DATE_LANGUAGE = German') "Current Date" FROM dual;
Αυτός ο κώδικας μορφοποιεί την τρέχουσα ημερομηνία σύμφωνα με τις γερμανικές συμβάσεις ονομασίας.
Η κατανόηση της μορφοποίησης ημερομηνιών είναι σημαντική πτυχή της δουλειάς με βάσεις δεδομένων, και η Oracle Database παρέχει ένα ποικίλο σύνολο εργαλείων για να σε βοηθήσει να το κατακτήσεις. Μη φοβηθείς να πειραματιστείς με διάφορους κωδικούς μορφής ημερομηνίας, ώστε να καταλάβεις καλύτερα πώς λειτουργούν και να βελτιώσεις τις δεξιότητές σου στην SQL.
Και αυτό ήταν! Τώρα θα πρέπει να έχεις στέρεη κατανόηση του πώς να μορφοποιείς ημερομηνίες στην Oracle Database. Οι συναρτήσεις TO_CHAR και TO_DATE, σε συνδυασμό με την κατανόηση των διάφορων κωδικών μορφής ημερομηνίας της Oracle, προσφέρουν ένα ισχυρό σύνολο εργαλείων για τον χειρισμό ημερομηνιών. Καλά queries!
Το Beekeeper Studio είναι ένα δωρεάν & open source GUI για Oracle
Στη δουλειά μου καλύπτω όλο τον legacy κώδικα, αλλά και ολοκαίνουργιο κώδικα, με MSSQL/MariaDB/Oracle/Postgres και SQLite. Νομίζω ότι βρήκα επιτέλους το εργαλείο που καλύπτει όλες μου τις ανάγκες σε ένα. - Chris Pink
Το Beekeeper Studio είναι ένας γρήγορος, διαισθητικός και εύχρηστος client για Oracle. Υποστηρίζει επίσης πολλές άλλες βάσεις δεδομένων και λειτουργεί άψογα σε Windows, Mac και Linux.
Τι λένε οι χρήστες της Oracle για το Beekeeper Studio
Στη δουλειά μου καλύπτω όλο τον legacy κώδικα, αλλά και ολοκαίνουργιο κώδικα, με MSSQL/Mariadb/Oracle/Postgres και sqlite, νομίζω ότι βρήκα επιτέλους το εργαλείο που καλύπτει όλες μου τις ανάγκες σε ένα
Το καλύτερο στο Beekeeper Studio είναι το καθαρό interface και η παρουσίαση των δεδομένων. Είναι το καλύτερο εργαλείο που γνωρίζω. Ως μηχανικός χρησιμοποιώ Postgres, MySQL, SQLite, Oracle και MS SQL, και το Beekeeper τα κάνει όλα με ένα πολύ ομαλό, ευρύχωρο και φυσικά διαισθητικό interface. Αν βάλεις το Beekeper Studio στη λίστα σου, είμαι σχεδόν σίγουρος ότι θα γίνει το αγαπημένο σου εργαλείο.