Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

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

Tôi nghĩ điều này có thể hữu ích:

Có ba vị trí 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 global.time_zone

Để xem chúng được đặt thành giá trị nào:

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 chính xác.)

Hãy nhớ rằng +02:00 là một phần bù. Europe/Berlin là múi giờ (có hai hiệu số) và CEST là thời gian đồng hồ tương ứng với một độ lệch cụ thể.

@@ biến session.time_zone

SELECT @@session.time_zone;

Để đặt nó, hãy 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 đều có thể trả về SYSTEM có nghĩa là chúng 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 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 các bảng đó trong câu trả lời này .

Để lấy chênh lệch múi giờ hiện tại là 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 làm dấu thời gian UNIX

SELECT UNIX_TIMESTAMP(`timestamp`) FROM `table_name`

Để lấy cột ngày giờ UTC làm dấu thời gian UNIX

SELECT UNIX_TIMESTAMP(CONVERT_TZ(`utc_datetime`, '+00:00', @@session.time_zone)) FROM `table_name`

Lưu ý:Việc thay đổi múi giờ sẽ không thay đổi ngày giờ hoặc dấu thời gian được lưu trữ , nhưng nó sẽ hiển thị ngày giờ khác cho các cột dấu thời gian hiện có vì chúng được lưu trữ nội bộ dưới dạng dấu thời gian UTC và được hiển thị bên ngoài trong múi giờ MySQL hiện tại.

Tôi đã tạo bảng cheats ở đây: MySQL có nên đặt múi giờ thành UTC không?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách đặt mật khẩu gốc thành null

  2. PHP chèn nhiều hộp kiểm VÀ mảng hộp văn bản vào Cơ sở dữ liệu MySQL

  3. Cách quản lý cơ sở dữ liệu với phpMyAdmin

  4. Làm thế nào để ngăn chặn trùng lặp tên người dùng khi mọi người đăng ký?

  5. Cách tìm các giá trị không phải dạng số trong một cột trong MySQL