MySQL преобразува от една часова зона в друга

Mysql Preobrazuva Ot Edna Casova Zona V Druga



„Часовите зони са една от сложните концепции, с които разработчиците трябва да се справят. Въпреки че инструментите и реализациите в релационните бази данни имат за цел да ги направят поносими, те могат да се окажат предизвикателни и понякога да доведат до грешки.

В тази статия обаче ще обсъдим как можете да конвертирате време от една часова зона в друга с помощта на 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


Ако използвате файл с часова зона, изпълнете командата:

mysql_tzinfo_to_sql tz_file tz_name | mysql -във корен -стр mysql


Изтеглете файловете с часови зони в ресурса по-долу:

https: // dev.mysql.com / изтегляния / timezones.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 за преобразуване на времето от една часова зона в друга.

Приятно кодиране!!