Múi giờ miền đông MySQL

Theo mặc định, múi giờ cho phiên bản Cơ sở dữ liệu MySQL là Giờ phối hợp quốc tế [UTC]. Thay vào đó, bạn có thể đặt múi giờ cho phiên bản CSDL thành múi giờ địa phương cho ứng dụng của mình

Để đặt múi giờ địa phương cho phiên bản CSDL, hãy đặt tham số time_zone trong nhóm tham số cho phiên bản CSDL của bạn thành một trong các giá trị được hỗ trợ liệt kê sau trong phần này. Khi bạn đặt tham số time_zone cho một nhóm tham số, tất cả các phiên bản CSDL và bản sao có quyền đọc đang sử dụng nhóm tham số đó sẽ thay đổi để sử dụng múi giờ địa phương mới. Để biết thông tin về cài đặt tham số trong một nhóm tham số, hãy xem Làm việc với các nhóm tham số

Sau khi bạn đặt múi giờ địa phương, tất cả các kết nối mới tới cơ sở dữ liệu đều phản ánh sự thay đổi. Nếu bạn có bất kỳ kết nối mở nào tới cơ sở dữ liệu của mình khi bạn thay đổi múi giờ địa phương, bạn sẽ không thấy cập nhật múi giờ địa phương cho đến khi bạn đóng kết nối và mở một kết nối mới

Bạn có thể đặt múi giờ địa phương khác cho phiên bản CSDL và một hoặc nhiều bản sao chỉ có quyền đọc của phiên bản đó. Để thực hiện việc này, hãy sử dụng một nhóm tham số khác cho phiên bản CSDL và bản sao hoặc các bản sao, đồng thời đặt tham số time_zone trong mỗi nhóm tham số thành một múi giờ địa phương khác

Nếu bạn đang sao chép trên các Khu vực AWS, thì phiên bản CSDL nguồn và bản sao chỉ có quyền đọc sẽ sử dụng các nhóm tham số khác nhau [các nhóm tham số là duy nhất cho một Khu vực AWS]. Để sử dụng cùng một múi giờ địa phương cho từng phiên bản, bạn phải đặt tham số time_zone trong các nhóm tham số của bản sao và phiên bản đã đọc

Khi bạn khôi phục phiên bản CSDL từ ảnh chụp nhanh CSDL, múi giờ địa phương được đặt thành UTC. Bạn có thể cập nhật múi giờ thành múi giờ địa phương sau khi quá trình khôi phục hoàn tất. Nếu bạn khôi phục phiên bản CSDL về một thời điểm, thì múi giờ địa phương cho phiên bản CSDL được khôi phục là cài đặt múi giờ từ nhóm tham số của phiên bản CSDL được khôi phục

Đôi khi, bạn có thể cần thay đổi múi giờ của Máy chủ MySQL để đồng bộ hóa ứng dụng/dữ liệu của mình theo múi giờ của khách hàng và nhân viên. Đây là cách thay đổi múi giờ của máy chủ MySQL


Cách thay đổi múi giờ của máy chủ MySQL

Có 3 cách để thay đổi múi giờ của máy chủ MySQL. Chúng tôi sẽ xem xét từng người trong số họ một cách chi tiết


1. Sử dụng lệnh Set GLOBAL

Đăng nhập vào máy chủ MySQL và chạy lệnh sau để đặt biến GLOBAL time_zone thành GMT – 6. 00 giờ

mysql> SET GLOBAL time_zone = '-6:00';

Trong lệnh trên, bạn cần đề cập đến phần bù GMT cho múi giờ của mình. Trong trường hợp này, múi giờ của chúng tôi là GMT – 6. 00 giờ

Bạn có thể kiểm tra múi giờ bằng lệnh sau

mysql> SELECT @@global.time_zone;

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

Phần thưởng đọc. Các chỉ mục MySQL SHOW trong cơ sở dữ liệu


2. Sử dụng lệnh Đặt phiên

Tương tự, bạn cũng có thể đặt các giá trị múi giờ dành riêng cho phiên. Đăng nhập vào máy chủ MySQL và chạy lệnh sau để đặt biến time_zone dành riêng cho phiên thành GMT – 6. 00 giờ

mysql> SET time_zone = '-6:00';

Trong lệnh trên, bạn cần đề cập đến phần bù GMT cho múi giờ của mình. Trong trường hợp này, múi giờ của chúng tôi là GMT – 6. 00 giờ

Bạn có thể kiểm tra múi giờ bằng lệnh sau

mysql> SELECT @@session.time_zone;

Phần thưởng đọc. Cơ sở dữ liệu so sánh MySQL


3. chỉnh sửa của tôi. tập tin cnf

Bạn cũng có thể đặt múi giờ của máy chủ MySQL trong tệp cấu hình máy chủ của mình. cnf. Mở tệp trong một thiết bị đầu cuối

Đôi khi bạn có thể cần chuyển đổi giá trị thời gian của MySQL từ múi giờ này sang múi giờ khác. Đây là cách thay đổi múi giờ MySQL trong truy vấn bằng hàm convert_tz[]


Chuyển đổi múi giờ trong truy vấn MySQL

Chúng tôi sẽ sử dụng chức năng 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ần chuyển đổi, múi giờ mà bạn muốn chuyển đổi giá trị này và múi giờ mà bạn muốn chuyển đổi sang

Bạn có thể chỉ định múi giờ dưới dạng hiệu số hoặc tên múi giờ

Phần thưởng đọc. Cách thay đổi múi giờ của máy chủ MySQL


Đây là một ví dụ để chuyển đổi giá trị thời gian theo nghĩa đen từ múi giờ UTC sang múi giờ EST, sử dụng độ 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. Đây là một ví dụ để chuyển đổi EST sang múi giờ Paris bằng cách chỉ định tên múi giờ thay vì giá trị bù

mysql> select convert_tz['2020-09-17 03:00:00','US/Eastern','Europe/Paris'];

Phần thưởng đọc. MySQL Hiển thị các 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à ngày giờ của MySQL trong hàm CONVERT_TZ. Đây là một ví dụ để thay đổi múi giờ của thời gian hiện tại thu đượ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. Đây là một ví dụ để thay đổi múi giờ của cột order_date trong bảng bán hàng, từ UTC sang EST

________số 8

Hy vọng, bây giờ bạn có thể thay đổi múi giờ MySQL trong truy vấn và chuyển đổi giá trị ngày, giờ, ngày giờ từ múi giờ này sang múi giờ khác

Làm cách nào để đặt múi giờ trong MySQL?

Để chỉ định rõ ràng múi giờ hệ thống cho Máy chủ MySQL khi khởi động, hãy đặt biến môi trường TZ trước khi bạn khởi động mysqld . Nếu bạn khởi động máy chủ bằng mysqld_safe, tùy chọn --timezone của nó cung cấp một cách khác để đặt múi giờ hệ thống. Các giá trị được phép cho TZ và --timezone phụ thuộc vào hệ thống.

MySQL ở múi giờ nào?

Theo mặc định, múi giờ cho phiên bản Cơ sở dữ liệu MySQL là Giờ phối hợp quốc tế [UTC] .

Làm cách nào để chuyển đổi UTC sang múi giờ địa phương trong MySQL?

Bạn có thể dễ dàng chuyển đổi UTC sang giờ địa phương trong MySQL bằng hàm convert_tz . Đây là cú pháp của hàm convert_tz. Trong hàm trên, bạn cần chỉ định giá trị ngày ở dạng chuỗi ký tự, hàm hệ thống hoặc tên cột, múi giờ ban đầu cũng như múi giờ mới của nó.

Múi giờ MySQL có nhận biết không?

MySQL chuyển đổi các giá trị DẤU THỜI GIAN từ múi giờ hiện tại sang UTC để lưu trữ và ngược lại từ UTC sang múi giờ hiện tại để truy xuất . [Điều này không xảy ra đối với các loại khác như DATETIME. ] Theo mặc định, múi giờ hiện tại cho mỗi kết nối là thời gian của máy chủ.

Chủ Đề