如何从MySQL中的日期时间减去小时数?

时间:2011-05-16 16:09:39

标签: mysql datetime gmt

我得到一个datetime字段,当前在查询中:

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

我想要做的是从该日期减去3个小时(GMT问题),但我无法在PHP中完成,因为PHP只知道日期部分,而不是时间。

2 个答案:

答案 0 :(得分:81)

mySQL有DATE_SUB()

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

但尝试解决潜在的时区问题会不会更好?

答案 1 :(得分:2)

假设您有时区问题并知道源时区和目的地时区,您可以将其转换为

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