Đôi khi bạn có thể cần chuyển đổi giá trị thời gian MySQL từ múi giờ này sang múi giờ khác. Dưới đây là cách thay đổi múi giờ MySQL trong truy vấn bằng cách sử dụng hàm convert_tz ().
Chuyển đổi múi giờ trong truy vấn MySQL
Chúng tôi sẽ sử dụng hàm CONVERT_TZ để thay đổi múi giờ MySQL trong truy vấn. Đây là cú pháp của hàm CONVERT_TZ.
convert_tz(value, from_timezone, to_timezone)
Trong hàm trên, bạn cần cung cấp giá trị thời gian được chuyển đổi, múi giờ bạn muốn chuyển đổi giá trị này và múi giờ bạn muốn chuyển đổi nó.
Bạn có thể chỉ định múi giờ làm hiệu số hoặc tên múi giờ.
Phần thưởng đọc:Cách thay đổi múi giờ máy chủ MySQL
Dưới đây là một ví dụ để chuyển đổi giá trị thời gian theo nghĩa đen từ UTC sang múi giờ EST, sử dụng chênh lệch múi giờ là ‘+00:00’ và ‘-05:00’ cho UTC và EST tương ứng.
mysql> select convert_tz('2020-09-17 03:00:00','+00:00','-05:00'); +-----------------------------------------------------+ | convert_tz('2020-09-17 03:00:00','+00:00','-05:00') | +-----------------------------------------------------+ | 2020-09-16 22:00:00 | +-----------------------------------------------------+
Bạn cũng có thể chỉ định múi giờ thay vì hiệu số. Tuy nhiên, trong trường hợp này, bạn sẽ cần tải xuống và cài đặt múi giờ MySQL trên máy chủ của mình. Dưới đây là một ví dụ để chuyển đổi EST thành múi giờ Paris bằng cách chỉ định tên múi giờ thay vì giá trị chênh lệch.
mysql> select convert_tz('2020-09-17 03:00:00','US/Eastern','Europe/Paris');
Phần thưởng Đọc:MySQL Hiển thị Chỉ mục trong Cơ sở dữ liệu
Bạn cũng có thể chuyển đổi các hàm ngày, giờ và thời gian ngày tháng của MySQL trong hàm CONVERT_TZ. Dưới đây là một ví dụ để thay đổi múi giờ của thời gian hiện tại có được bằng cách sử dụng hàm NOW (), từ UTC sang EST
mysql> select convert_tz(now(),'+00:00','-05:00'); +-------------------------------------+ | convert_tz(now(),'+00:00','-05:00') | +-------------------------------------+ | 2020-09-17 04:45:07 | +-------------------------------------+
Phần thưởng Đọc:Cách so sánh cơ sở dữ liệu MySQL
Tương tự, bạn cũng có thể chuyển đổi các cột ngày, giờ, ngày giờ bằng convert_tz. Dưới đây là một ví dụ để thay đổi múi giờ của order_date trong doanh số bán hàng bảng, từ UTC đến EST
mysql> select convert_tz(order_date,'+00:00','-05:00') from sales; +------------------------------------------+ | convert_tz(order_date,'+00:00','-05:00') | +------------------------------------------+ | 2020-05-03 19:00:00 | | 2020-05-04 19:00:00 | | 2020-05-05 19:00:00 | | ... | | 2020-05-13 19:00:00 | +------------------------------------------+
Hy vọng rằng bây giờ bạn có thể thay đổi múi giờ MySQL trong truy vấn và chuyển đổi các giá trị ngày, giờ, datetime từ múi giờ này sang múi giờ khác.
Ubiq giúp dễ dàng trực quan hóa dữ liệu trong vài phút và theo dõi trong trang tổng quan thời gian thực. Thử nó ngay hôm nay!