Saya pikir ini mungkin berguna:
Ada tiga tempat di mana zona waktu dapat diatur di MySQL:
Dalam file "my.cnf" di bagian [mysqld]
default-time-zone='+00:00'
@@global.time_zone variabel
Untuk melihat nilai yang ditetapkan:
SELECT @@global.time_zone;
Untuk menetapkan nilai, gunakan salah satu:
SET GLOBAL time_zone = '+8:00';
SET GLOBAL time_zone = 'Europe/Helsinki';
SET @@global.time_zone = '+00:00';
(Menggunakan zona waktu bernama seperti 'Europe/Helsinki' berarti Anda harus memiliki tabel zona waktu yang terisi dengan benar.)
Perlu diingat bahwa +02:00
adalah offset. Europe/Berlin
adalah zona waktu (yang memiliki dua offset) dan CEST
adalah waktu jam yang sesuai dengan offset tertentu.
@@session.time_zone variabel
SELECT @@session.time_zone;
Untuk mengaturnya gunakan salah satu:
SET time_zone = 'Europe/Helsinki';
SET time_zone = "+00:00";
SET @@session.time_zone = "+00:00";
Keduanya mungkin mengembalikan SYSTEM yang berarti mereka menggunakan zona waktu yang ditetapkan di my.cnf.
Agar nama zona waktu berfungsi, Anda harus menyiapkan tabel informasi zona waktu yang harus diisi:http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html . Saya juga menyebutkan cara mengisi tabel tersebut di jawaban ini .
Untuk mendapatkan offset zona waktu saat ini sebagai TIME
SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);
Ini akan mengembalikan 02:00:00 jika zona waktu Anda adalah +2:00.
Untuk mendapatkan stempel waktu UNIX saat ini:
SELECT UNIX_TIMESTAMP();
SELECT UNIX_TIMESTAMP(NOW());
Untuk mendapatkan kolom stempel waktu sebagai stempel waktu UNIX
SELECT UNIX_TIMESTAMP(`timestamp`) FROM `table_name`
Untuk mendapatkan kolom tanggal waktu UTC sebagai stempel waktu UNIX
SELECT UNIX_TIMESTAMP(CONVERT_TZ(`utc_datetime`, '+00:00', @@session.time_zone)) FROM `table_name`
Catatan:Mengubah zona waktu tidak akan mengubah tanggal waktu atau stempel waktu yang disimpan , tetapi ini akan menampilkan tanggal waktu yang berbeda untuk kolom stempel waktu yang ada karena kolom tersebut disimpan secara internal sebagai stempel waktu UTC dan ditampilkan secara eksternal di zona waktu MySQL saat ini.
Saya membuat lembar contekan di sini:Haruskah MySQL mengatur zona waktunya ke UTC?