Στο Oracle Analytics, οι διαχειριστές ορίζουν την προεπιλεγμένη ζώνη ώρας που χρησιμοποιείται για τους υπολογισμούς ημερομηνίας και ώρας στις Ρυθμίσεις συστήματος. Αυτή η καθολική ρύθμιση ισχύει για όλους τους υπολογισμούς. Αυτό το θέμα εξηγεί πώς να χρησιμοποιείτε τη συνάρτηση TIMESTAMPADD
για να καθορίζετε μια άλλη ζώνη ώρας εάν θέλετε μια διαφορετική χρονική σήμανση σε έναν συγκεκριμένο υπολογισμό.
Ορισμός της προεπιλεγμένης ζώνης ώρας για υπολογισμούς στις Ρυθμίσεις συστήματος
CURRENT_DATE
CURRENT_TIME()
CURRENT_TIMESTAMP()
NOW()
Ως διαχειριστής, μπορείτε να αλλάξετε τη χρονική σήμανση που χρησιμοποιείται στους υπολογισμούς, χρησιμοποιώντας την επιλογή Προεπιλεγμένη ζώνη ώρας για υπολογισμούς ημερομηνίας στην ενότητα Ρυθμίσεις συστήματος της Κονσόλας. Επιλέξτε την επιθυμητή ζώνη ώρας από την αναπτυσσόμενη λίστα και εφαρμόστε τις αλλαγές, προκειμένου να ισχύει η νέα τιμή.
Για περισσότερες πληροφορίες σχετικά με τις καθολικές ρυθμίσεις ζώνης ώρας, δείτε το θέμα Ρυθμίσεις συστήματος - Επιλογές μορφής.
Χρήση συγκεκριμένης ζώνης ώρας για χρονικές σημάνσεις σε υπολογισμούς
Για να δημιουργήσετε μια διαφορετική χρονική σήμανση από τη ρύθμιση συστήματος στους υπολογισμούς σας, χρησιμοποιήστε τη συνάρτηση TIMESTAMPADD
σε συνδυασμό με τις συναρτήσεις CURRENT_TIMESTAMP()
ή NOW()
. Ο βασικός υπολογισμός TIMESTAMPADD
είναι:
TIMESTAMPADD(SQL_TSI_<<χρονικό διάστημα>>, <<έκφραση ακεραίου>>, <<έκφραση χρονικής σήμανσης>>)
Για υπολογισμούς χρονικής σήμανσης, η τιμή HOUR
είναι το χρονικό διάστημα και η χρονική μετατόπιση είναι η διαφορά σε ώρες ανάμεσα στην ώρα UTC και στη ζώνη ώρας που θα χρησιμοποιηθεί για τις αναφορές. Για παράδειγμα:
TIMESTAMPADD(SQL_TSI_HOUR, -6,CURRENT_TIMESTAMP(5))
Αυτός ο υπολογισμός επιστρέφει την τρέχουσα χρονική σήμανση σε Ορεινή ώρα ΗΠΑ. Μπορείτε να δημιουργήσετε τη νέα στήλη χρονικής σήμανσης ως παραγόμενη στήλη στην προέλευση λογικού πίνακα ή να την αντιστοιχίσετε απευθείας στη βάση δεδομένων. Η διαφορά έγκειται στο πού θα εκτελεστεί ο υπολογισμός, δηλαδή, στο Oracle Analytics ή στη βάση δεδομένων. Το ακόλουθο σχήμα παρουσιάζει έναν υπολογισμό που αντιστοιχίζεται απευθείας στη βάση δεδομένων στο πλαίσιο διαλόγου "Δόμηση έκφρασης - Έκφραση".
Όταν η προεπιλεγμένη ζώνη ώρας έχει οριστεί σε UTC, η συνάρτηση CURRENT_DATE
δεν επιστρέφει τη σωστή ημερομηνία για ορισμένες ώρες της ημέρας σε σχέση με τη ζώνη ώρας ενός χρήστη. Για παράδειγμα, όταν είναι μεσάνυχτα στη ζώνη ώρας UTC, η τοπική ημερομηνία δεν συμφωνεί με την ημερομηνία UTC για τη διάρκεια της χρονικής μετατόπισης.
Η μετατροπή του υπολογισμού χρονικής σήμανσης ως ημερομηνίας λύνει αυτό το πρόβλημα. Για παράδειγμα:
cast(TIMESTAMPADD(SQL_TSI_HOUR, -6,CURRENT_TIMESTAMP) as date)
Το ακόλουθο σχήμα παρουσιάζει έναν υπολογισμό που δημιουργείται ως παραγόμενη στήλη στο πλαίσιο διαλόγου "Δόμηση έκφρασης - Παραγόμενη λογική στήλη".
Για μοναδικές ή μεμονωμένες αναφορές, μπορείτε να δημιουργήσετε υπολογισμούς χρονικής σήμανσης στο επίπεδο αναφοράς είτε σε μια απεικόνιση δεδομένων είτε σε μια κλασική ανάλυση. Αν σκοπεύετε να χρησιμοποιήσετε ξανά τους υπολογισμούς, είναι συχνά ευκολότερο να τους ορίσετε ως στήλες στο σημασιολογικό μοντέλο (ή αρχείο RPD).
Για περισσότερες πληροφορίες σχετικά με τις συναρτήσεις που αναφέρονται σε αυτό το θέμα, δείτε τις ενότητες Λειτουργίες ημερομηνίας και ώρας και Συναρτήσεις χρονικών σειρών