Hoặc là tôi đang ngu ngốc hoặc có điều gì đó sai ở đây.Làm thế nào để chọn UTC_TIMESTAMP() trả về -10: 00 UTC?
Tôi có hai máy chủ SQL, một là trên máy tính địa phương của tôi (giờ địa phương 2 giờ) và thứ hai là ở một nơi khác (NOW()
dường như trở 8 giờ) và tôi truy cập nó thông qua phpMyAdmin. Tôi có một bảng có cột DATETIME
. Tôi đang cố gắng
để lưu trữ các hiện GMT/UTC thời gian và sau đó hiển thị nó một lần nữa, vẫn như giờ thời gian/UTC.
Ban đầu tôi đã lưu DATE_SUB(NOW(), INTERVAL 8 HOUR)
hoạt động tốt. Tuy nhiên, sau đó tôi đọc về UTC_TIMESTAMP()
và thích nó hơn, như nó đã được rút ngắn và các MySQL manual
thậm chí còn nói:
"Các hiện cài đặt múi giờ không ảnh hưởng đến giá trị hiển thị theo chức năng như UTC_TIMESTAMP() hoặc giá trị trong DATE, TIME hoặc DATETIME cột. "
Vì vậy, hoàn hảo phải không? Ngoại trừ không.
Giả sử hiện tại GMT là 2010-02-18 17:18:17 (Tôi thậm chí đã kiểm tra kỹ nó với một người nào đó ở Anh).
On địa phương của tôi (2) máy chủ, tôi nhận được kết quả như sau cho các truy vấn sau đây:
SELECT NOW(); 2010-02-18 19:18:17
SELECT UTC_TIMESTAMP(); 2010-02-18 17:18:17
On máy chủ trực tuyến của tôi tôi nhận được:
SELECT NOW(); 2010-02-19 01:18:17
SELECT UTC_TIMESTAMP(); 2010-02-19 07:18:17 (WHY?!)
Am I thiếu một cái gì đó ?!
tôi đang gặp phải vấn đề tương tự. – diEcho