MySQL konwertuje z jednej strefy czasowej na inną

Mysql Konwertuje Z Jednej Strefy Czasowej Na Inna



„Strefy czasowe to jedna ze złożonych koncepcji, z którymi muszą się zmierzyć programiści. Chociaż narzędzia i implementacje w relacyjnych bazach danych mają na celu uczynienie ich tolerowanymi, mogą okazać się trudne i czasami prowadzić do błędów.

W tym artykule omówimy jednak, w jaki sposób można przekonwertować czas z jednej strefy czasowej na inną za pomocą MySQL”.







Funkcja MySQL Convert_Tz()

Funkcja convert_tz() w MySQL umożliwia nam konwersję z jednej strefy czasowej na inną. Składnia funkcji jest następująca:



CONVERT_TZ ( dt,od_tz,do_tz )


Funkcja pobiera wartość daty i godziny do przekonwertowania, strefę czasową, z której chcesz przekonwertować, oraz konwersję, na którą chcesz przekonwertować.



MySQL umożliwia określenie stref czasowych jako nazw lub wartości przesunięcia. Funkcja zwróci wtedy wybrany obiekt Datetime w docelowej strefie czasowej.





Przykład 1

Poniżej znajduje się przykład ilustrujący, jak przekonwertować ciąg czasu z EST na EAT przy użyciu przesunięć strefy czasowej.

Wybierz
konwertuj_tz ( '2022-08-08 22:22:22' ,
„+00:00” ,
„+03:00” ) jak czas1;



Powyższe przykładowe zapytanie powinno zwrócić wynik:



| czas1 |
| ------------------- |
| 2022 -08-09 01: 22 : 22 |

Przykład 2

Jak wspomniano, docelową strefę czasową możemy określić za pomocą jej nazwy. Wymaga to jednak pobrania i zainstalowania stref czasowych MySQL.

Możesz uruchomić poniższe polecenie, aby załadować strefy czasowe.

$ mysql_tzinfo_to_sql / usr / dzielić / informacje o strefie | mysql -w źródło -p mysql


Jeśli używasz pliku strefy czasowej, uruchom polecenie:

mysql_tzinfo_to_sql plik_tz_nazwa_tz | mysql -w źródło -p mysql


Pobierz pliki stref czasowych z poniższego zasobu:

https: // dev.mysql.com / pliki do pobrania / strefy czasowe.html


Załaduj plik:

mysql -w źródło -p mysql < Nazwa pliku


Następnie możesz określić docelową strefę czasową o nazwie:

mysql > WYBIERZ KONWERTĘ_TZ ( '2022-10-10 14:34:00' , „USA/Wschód” , „USA/Centrum” ) JAK czas ;


Powyższe zapytanie powinno zwrócić czas przekonwertowany na docelową strefę czasową jako:

+---------------------+
| czas |
+---------------------+
| 2022 - 10 - 10 13 : 3. 4 :00 |
+---------------------+
1 wiersz w ustawić ( 0,00 sek )

Koniec

W tym krótkim poście omówiliśmy, jak używać funkcji convert_tz w MySQL do konwersji czasu z jednej strefy czasowej na inną.

Szczęśliwego kodowania!!