J'obtiens un champ datetime, qui est actuellement dans la requête en tant que:
SELECT DATE_FORMAT(x.date_entered, '%Y-%m-%d') AS date FROM x ORDER BY date ASC
Ce que je veux faire est de soustraire 3 heures de cette date (problèmes GMT), mais je ne peux pas le faire en PHP as PHP ne connaît que le partie de date, pas l'heure.
mySQL a DATE_SUB()
:
SELECT DATE_SUB(column, INTERVAL 3 HOUR)....
mais ne serait-il pas préférable d'essayer de régler le problème de fuseau horaire sous-jacent à la place?
En supposant que vous ayez un problème de fuseau horaire et que vous connaissiez le fuseau horaire source et de destination, vous pouvez le convertir comme ceci
SELECT DATE_FORMAT(CONVERT_TZ(x.date_entered, 'UTC', 'Europe/Berlin'),
'%Y-%m-%d') AS date
FROM x ORDER BY date ASC;