Bunun yararlı olabileceğini düşündüm:
MySQL'de saat diliminin ayarlanabileceği üç yer vardır:
[Mysqld] bölümündeki "my.cnf" dosyasında
default-time-zone='+00:00'
@@ global.time_zone değişkeni
Hangi değere ayarlandıklarını görmek için:
SELECT @@global.time_zone;
Bunun için bir değer ayarlamak için birini kullanın:
SET GLOBAL time_zone = '+8:00';
SET GLOBAL time_zone = 'Europe/Helsinki';
SET @@global.time_zone = '+00:00';
('Europe / Helsinki' gibi adlandırılmış saat dilimlerini kullanmak, saat dilimi tablosunun doğru şekilde doldurulması gerektiği anlamına gelir.)
Bunun +02:00
bir mahsup olduğunu unutmayın . Europe/Berlin
(iki ofseti olan) CEST
bir saat dilimidir ve belirli bir ofsete karşılık gelen bir saattir.
@@ session.time_zone değişkeni
SELECT @@session.time_zone;
Ayarlamak için birini kullanın:
SET time_zone = 'Europe/Helsinki';
SET time_zone = "+00:00";
SET @@session.time_zone = "+00:00";
Her ikisi de SYSTEM'i döndürebilir, bu da my.cnf dosyasında ayarlanan saat dilimini kullandıkları anlamına gelir.
Saat dilimi adlarının çalışması için saat dilimi bilgi tablolarınızın doldurulması gerekir: http://dev.mysql.com/doc/refman/5.1/tr/time-zone-support.html . Bu cevapta bu tabloları nasıl dolduracağımı da anlatacağım .
Geçerli saat dilimi farkını TIME
SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);
Saat diliminiz +2: 00 ise 02:00:00 döndürecektir.
Geçerli UNIX zaman damgasını almak için:
SELECT UNIX_TIMESTAMP();
SELECT UNIX_TIMESTAMP(NOW());
Zaman damgası sütununu UNIX zaman damgası olarak almak için
SELECT UNIX_TIMESTAMP(`timestamp`) FROM `table_name`
UTC tarih / saat sütununu UNIX zaman damgası olarak almak için
SELECT UNIX_TIMESTAMP(CONVERT_TZ(`utc_datetime`, '+00:00', @@session.time_zone)) FROM `table_name`
Not: Saat diliminin değiştirilmesi, depolanan tarih saatini veya zaman damgasını değiştirmez , ancak mevcut zaman damgası sütunları için dahili olarak UTC zaman damgaları olarak depolandıkları ve geçerli MySQL saat diliminde harici olarak görüntülendiğinden farklı bir tarih saati gösterir.
Burada bir hile sayfası yaptım: MySQL'in saat dilimi UTC olarak ayarlanmış mı?
ntp
- ve sizin için neyin doğru olduğunu görün!"