Подтвердить что ты не робот

Как вычесть часы из даты и времени в MySQL?

Я получаю поле datetime, которое в настоящее время находится в запросе как:

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

То, что я хочу сделать, это вычесть 3 часа с этой даты (проблемы с GMT), но я не могу это сделать в PHP, поскольку PHP знает только дату, а не время.

4b9b3361

Ответ 1

mySQL имеет DATE_SUB():

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

но не лучше ли попытаться решить проблему основного часового пояса?

Ответ 2

Предполагая, что у вас есть проблема с часовым поясом, и знаете часовой пояс и источник времени, вы можете преобразовать его так:

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