Как вычесть 3 часа из datetime в MySQL?
Я получаю поле datetime, которое в настоящее время находится в запросе как:
SELECT DATE_FORMAT(x.date_entered, '%Y-%m-%d') AS date FROM x ORDER BY date ASC
то, что я хочу сделать, это вычесть 3 часа с этой даты (проблемы GMT), но я не могу сделать это в PHP, поскольку PHP знает только часть даты, а не время.
2 ответов
mySQL имеет DATE_SUB()
:
SELECT DATE_SUB(column, INTERVAL 3 HOUR)....
но не было бы лучше попробовать и разобраться в основной проблеме часового пояса вместо этого?
предполагая, что у вас есть проблема с часовым поясом и знаете часовой пояс источника и назначения, вы можете преобразовать его так
SELECT DATE_FORMAT(CONVERT_TZ(x.date_entered, 'UTC', 'Europe/Berlin'),
'%Y-%m-%d') AS date
FROM x ORDER BY date ASC;