«Οι ζώνες ώρας είναι μια από τις περίπλοκες έννοιες που πρέπει να αντιμετωπίσουν οι προγραμματιστές. Αν και τα εργαλεία και οι υλοποιήσεις σε σχεσιακές βάσεις δεδομένων στοχεύουν στο να τις κάνουν ανεκτές, μπορεί να αποδειχθούν προκλητικές και μερικές φορές να οδηγήσουν σε σφάλματα.
Σε αυτό το άρθρο, ωστόσο, θα συζητήσουμε πώς μπορείτε να μετατρέψετε μια ώρα από μια ζώνη ώρας σε μια άλλη χρησιμοποιώντας MySQL.'
Λειτουργία MySQL Convert_Tz().
Η συνάρτηση convert_tz() στη MySQL μας δίνει τη δυνατότητα να κάνουμε μετατροπή από μια ζώνη ώρας σε μια άλλη. Η σύνταξη της συνάρτησης είναι όπως φαίνεται:
CONVERT_TZ ( dt,from_tz,to_tz )
Η συνάρτηση λαμβάνει την τιμή ημερομηνίας που θα μετατραπεί, τη ζώνη ώρας από την οποία θέλετε να κάνετε μετατροπή και τη μετατροπή στην οποία θέλετε να μετατρέψετε.
Η MySQL σάς επιτρέπει να καθορίσετε τις ζώνες ώρας ως ονόματα ή τιμές μετατόπισης. Στη συνέχεια, η συνάρτηση θα επιστρέψει το επιλεγμένο αντικείμενο Datetime στη ζώνη ώρας στόχου.
Παράδειγμα 1
Παρακάτω είναι ένα παράδειγμα που δείχνει πώς να μετατρέψετε μια συμβολοσειρά ώρας από EST σε EAT χρησιμοποιώντας τις μετατοπίσεις ζώνης ώρας.
επιλέγωconvert_tz ( '08-08-2022 22:22:22' ,
'+00:00' ,
'+03:00' ) όπως και χρόνος1;
Το παραπάνω παράδειγμα ερωτήματος θα πρέπει να επιστρέψει μια έξοδο:
| ώρα 1 |
| -------------------- |
| 2022 -08-09 01: 22 : 22 |
Παράδειγμα 2
Όπως αναφέρθηκε, μπορούμε να καθορίσουμε τη ζώνη ώρας-στόχου με το όνομά της. Ωστόσο, αυτό απαιτεί να κάνετε λήψη και εγκατάσταση MySQL Timezones.
Μπορείτε να εκτελέσετε την παρακάτω εντολή για να φορτώσετε τις ζώνες ώρας.
$ mysql_tzinfo_to_sql / usr / μερίδιο / zoneinfo | mysql -σε ρίζα -Π mysql
Εάν χρησιμοποιείτε ένα αρχείο ζώνης ώρας, εκτελέστε την εντολή:
Κατεβάστε τα αρχεία ζώνης ώρας στον παρακάτω πόρο:
Φορτώστε το αρχείο:
Στη συνέχεια, μπορείτε να καθορίσετε τη ζώνη ώρας-στόχου με το όνομα:
Το παραπάνω ερώτημα θα πρέπει να επιστρέψει την ώρα που μετατράπηκε στη ζώνη ώρας στόχου ως:
| χρόνος |
+---------------------+
| 2022 - 10 - 10 13 : 3. 4 :00 |
+---------------------+
1 σειρά σε σειρά ( 0,00 δευτ )
Τέλος
Σε αυτή τη σύντομη ανάρτηση, συζητήσαμε πώς να χρησιμοποιήσετε τη συνάρτηση convert_tz στη MySQL για τη μετατροπή του χρόνου από μια ζώνη ώρας σε μια άλλη.
Καλή κωδικοποίηση!!