Η MySQL μετατρέπει από μια ζώνη ώρας σε μια άλλη

E Mysql Metatrepei Apo Mia Zone Oras Se Mia Alle



«Οι ζώνες ώρας είναι μια από τις περίπλοκες έννοιες που πρέπει να αντιμετωπίσουν οι προγραμματιστές. Αν και τα εργαλεία και οι υλοποιήσεις σε σχεσιακές βάσεις δεδομένων στοχεύουν στο να τις κάνουν ανεκτές, μπορεί να αποδειχθούν προκλητικές και μερικές φορές να οδηγήσουν σε σφάλματα.

Σε αυτό το άρθρο, ωστόσο, θα συζητήσουμε πώς μπορείτε να μετατρέψετε μια ώρα από μια ζώνη ώρας σε μια άλλη χρησιμοποιώντας 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


Εάν χρησιμοποιείτε ένα αρχείο ζώνης ώρας, εκτελέστε την εντολή:

mysql_tzinfo_to_sql tz_file tz_name | mysql -σε ρίζα mysql


Κατεβάστε τα αρχεία ζώνης ώρας στον παρακάτω πόρο:

https: // dev.mysql.com / λήψεις / ζώνες ώρας.html


Φορτώστε το αρχείο:

mysql -σε ρίζα mysql < όνομα αρχείου


Στη συνέχεια, μπορείτε να καθορίσετε τη ζώνη ώρας-στόχου με το όνομα:

mysql > ΕΠΙΛΟΓΗ CONVERT_TZ ( '2022-10-10 14:34:00' , 'ΗΠΑ/Ανατολική' , 'ΗΠΑ/Κεντρικό' ) ΟΠΩΣ ΚΑΙ χρόνος ;


Το παραπάνω ερώτημα θα πρέπει να επιστρέψει την ώρα που μετατράπηκε στη ζώνη ώρας στόχου ως:

+---------------------+
| χρόνος |
+---------------------+
| 2022 - 10 - 10 13 : 3. 4 :00 |
+---------------------+
1 σειρά σε σειρά ( 0,00 δευτ )

Τέλος

Σε αυτή τη σύντομη ανάρτηση, συζητήσαμε πώς να χρησιμοποιήσετε τη συνάρτηση convert_tz στη MySQL για τη μετατροπή του χρόνου από μια ζώνη ώρας σε μια άλλη.

Καλή κωδικοποίηση!!