【发布时间】:2011-08-26 14:00:34
【问题描述】:
我得到一个日期时间字段,目前在查询中为:
SELECT DATE_FORMAT(x.date_entered, '%Y-%m-%d') AS date FROM x ORDER BY date ASC
我想做的是从那个日期减去 3 小时(GMT 问题),但我不能在 PHP 中这样做,因为 PHP 只知道日期部分,而不是时间。
【问题讨论】:
我得到一个日期时间字段,目前在查询中为:
SELECT DATE_FORMAT(x.date_entered, '%Y-%m-%d') AS date FROM x ORDER BY date ASC
我想做的是从那个日期减去 3 小时(GMT 问题),但我不能在 PHP 中这样做,因为 PHP 只知道日期部分,而不是时间。
【问题讨论】:
【讨论】:
%Y-%m-%d
DATE_FORMAT() - DATE(x.date_entered) 还没有做吗?最后一行是DATE(DATE_SUB(x.date_entered, INTERVAL 3 HOUR))
DATE_SUB 指令周围,它应该可以工作。
假设您有一些时区问题并且知道源和目标时区,您可以像这样转换它
SELECT DATE_FORMAT(CONVERT_TZ(x.date_entered, 'UTC', 'Europe/Berlin'),
'%Y-%m-%d') AS date
FROM x ORDER BY date ASC;
【讨论】: