A yapmayı denedim SELECT DATE(ColumnName)
, ancak bu sütunlar için çalışmıyor † çünkü bunlar UTC'de saklanıyor ve yerel tarihe dönüştürmek yerine UTC tarihi kullanılıyor. Öyle benim birleştirerek, benim saat diliminde belirli bir tarihte vardı satırları seçmek için gerekli bu diğer sorunun cevabı ile bu soruya Balaswamy Vaddeman cevabıTIMESTAMP
, bu ne yaptım:
Tarihleri olarak depoluyorsanız DATETIME
Sadece yap SELECT DATE(ColumnName)
Tarihleri olarak depoluyorsanız TIMESTAMP
Henüz yapmadıysanız , saat dilimi verilerini MySQL'e yükleyin . Windows sunucuları için önceki bağlantıya bakın. Linux, FreeBSD, Solaris ve OS X sunucuları için şunları yaparsınız:
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
Ardından sorgunuzu şu şekilde biçimlendirin:
SELECT DATE(CONVERT_TZ(`ColumnName`, 'UTC', 'America/New_York'))
Bunu WHERE
sorgunun şu şekilde bir kısmına da koyabilirsiniz (ancak bu sütundaki dizinlerin çalışmayacağını unutmayın):
SELECT * FROM tableName
WHERE DATE(CONVERT_TZ(`ColumnName`, 'UTC', 'America/New_York')) >= '2015-02-04'
(Açıkçası America/New_York
yerel saat diliminizin yerini alınız.)
† Bunun tek istisnası, yerel saat diliminizin GMT olması ve yerel saatinizin UTC ile aynı olması nedeniyle yaz saati uygulaması yapmamanızdır.