„Часовите зони са една от сложните концепции, с които разработчиците трябва да се справят. Въпреки че инструментите и реализациите в релационните бази данни имат за цел да ги направят поносими, те могат да се окажат предизвикателни и понякога да доведат до грешки.
В тази статия обаче ще обсъдим как можете да конвертирате време от една часова зона в друга с помощта на MySQL.
Функция MySQL Convert_Tz().
Функцията convert_tz() в MySQL ни позволява да конвертираме от една часова зона в друга. Синтаксисът на функцията е както е показано:
CONVERT_TZ ( dt,от_tz,към_tz )
Функцията взема стойността за дата и час, която трябва да бъде преобразувана, часовата зона, от която искате да преобразувате, и преобразуването, в което искате да преобразувате.
MySQL ви позволява да посочите часовите зони като имена или стойности на отместване. След това функцията ще върне избрания обект Datetime в целевата часова зона.
Пример 1
По-долу е даден пример, който илюстрира как да конвертирате времеви низ от EST в EAT, като използвате отместванията на часовата зона.
изберетеconvert_tz ( „2022-08-08 22:22:22“ ,
'+00:00' ,
'+03:00' ) като време1;
Примерната заявка по-горе трябва да върне резултат:
| време1 |
| ------------------- |
| 2022 г -08-09 01: 22 : 22 |
Пример 2
Както споменахме, можем да посочим целевата часова зона чрез нейното име. Това обаче изисква да изтеглите и инсталирате MySQL Timezones.
Можете да изпълните командата по-долу, за да заредите часовите зони.
$ mysql_tzinfo_to_sql / usr / дял / информация за зоната | mysql -във корен -стр mysql
Ако използвате файл с часова зона, изпълнете командата:
Изтеглете файловете с часови зони в ресурса по-долу:
Заредете файла:
След това можете да посочите целевата часова зона с името:
Горната заявка трябва да върне времето, преобразувано в целевата часова зона като:
| време |
+--------------------+
| 2022 г - 10 - 10 13 : 3. 4 :00 |
+--------------------+
1 ред в комплект ( 0,00 сек )
Край
В тази кратка публикация обсъдихме как да използваме функцията convert_tz в MySQL за преобразуване на времето от една часова зона в друга.
Приятно кодиране!!