Tôi nghĩ rằng điều này có thể hữu ích:
Có ba nơi mà múi giờ có thể được đặt trong MySQL:
Trong tệp "my.cnf" trong phần [mysqld]
default-time-zone='+00:00'
@@ biến toàn cầu.time_zone
Để xem giá trị nào chúng được đặt thành:
SELECT @@global.time_zone;
Để đặt giá trị cho nó, hãy sử dụng một trong hai:
SET GLOBAL time_zone = '+8:00';
SET GLOBAL time_zone = 'Europe/Helsinki';
SET @@global.time_zone = '+00:00';
(Sử dụng các múi giờ được đặt tên như 'Châu Âu / Helsinki' có nghĩa là bạn phải có bảng múi giờ được điền đúng.)
Hãy nhớ rằng đó +02:00
là một sự bù đắp. Europe/Berlin
là múi giờ (có hai độ lệch) và CEST
là thời gian đồng hồ tương ứng với độ lệch cụ thể.
@@ session.time_zone
SELECT @@session.time_zone;
Để thiết lập, sử dụng một trong hai:
SET time_zone = 'Europe/Helsinki';
SET time_zone = "+00:00";
SET @@session.time_zone = "+00:00";
Cả hai có thể trả về HỆ THỐNG có nghĩa là họ sử dụng múi giờ được đặt trong my.cnf.
Để tên múi giờ hoạt động, bạn phải thiết lập các bảng thông tin múi giờ của mình cần được điền: http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html . Tôi cũng đề cập đến cách điền vào các bảng trong câu trả lời này .
Để có được độ lệch múi giờ hiện tại như TIME
SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);
Nó sẽ trả về 02:00:00 nếu múi giờ của bạn là +2: 00.
Để lấy dấu thời gian UNIX hiện tại:
SELECT UNIX_TIMESTAMP();
SELECT UNIX_TIMESTAMP(NOW());
Để lấy cột dấu thời gian dưới dạng dấu thời gian UNIX
SELECT UNIX_TIMESTAMP(`timestamp`) FROM `table_name`
Để lấy cột thời gian UTC dưới dạng dấu thời gian UNIX
SELECT UNIX_TIMESTAMP(CONVERT_TZ(`utc_datetime`, '+00:00', @@session.time_zone)) FROM `table_name`
Lưu ý: Thay đổi múi giờ sẽ không thay đổi thời gian được lưu trữ hoặc dấu thời gian , nhưng nó sẽ hiển thị thời gian khác nhau cho các cột dấu thời gian hiện tại khi chúng được lưu trữ bên trong dưới dạng dấu thời gian UTC và hiển thị bên ngoài trong múi giờ MySQL hiện tại.
Tôi đã tạo ra một chiếc áo choàng ở đây: MySQL có nên đặt múi giờ của nó thành UTC không?
ntp
- và xem điều gì phù hợp với bạn!"