web-dev-qa-db-ja.com

MySQLで日時から時間を減算する方法は?

現在、クエリに含まれている日時フィールドを取得します:

SELECT DATE_FORMAT(x.date_entered, '%Y-%m-%d') AS date FROM x ORDER BY date ASC

私がしたいのは、その日付から3時間を減算することです(GMTの問題)が、PHP as PHP時間ではなく日付部分。

52
Lucas Famelli

mySQLには DATE_SUB()

SELECT DATE_SUB(column, INTERVAL 3 HOUR)....

しかし、代わりに根本的なタイムゾーンの問題を整理しようとする方が良いでしょうか?

91
Pekka 웃

タイムゾーンの問題があり、ソースとターゲットのタイムゾーンがわかっていると仮定すると、次のように変換できます

SELECT DATE_FORMAT(CONVERT_TZ(x.date_entered, 'UTC', 'Europe/Berlin'),
                   '%Y-%m-%d') AS date
FROM x ORDER BY date ASC;
2
webjunkie