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
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