„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.
Wybierzkonwertuj_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:
Pobierz pliki stref czasowych z poniższego zasobu:
Załaduj plik:
Następnie możesz określić docelową strefę czasową o nazwie:
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!!