42 votes

MYSQL Date Heure arrondie à l'heure la plus proche

J'ai un champ date/heure dans une base de données MySQL et je souhaite afficher le résultat à l'heure la plus proche.

par exemple, 2012-04-01 00:00:01 devrait lire 2012-04-01 00:00:00

43voto

rjhdby Points 166

La moitié de l'heure est un 30 minutes. Ajoutez simplement 30 minutes à l'horodatage et tronquez les minutes et les secondes.

SELECT DATE_FORMAT(DATE_ADD(timestamp_column, INTERVAL 30 MINUTE),'%Y-%m-%d %H:00:00') FROM table

8voto

soul Points 2553

De Comment arrondir un DateTime dans MySQL ? :

C'est un peu désagréable quand vous le faites avec des types de données datetime ; un bon candidat pour une fonction stockée.

 DATE_SUB(DATE_SUB(time, INTERVAL MOD(MINUTE(time),5) MINUTE ), 
         INTERVAL SECOND(time) SECOND)

C'est plus facile lorsque vous utilisez des horodatages UNIXTIME, mais cela est limité à une plage de dates allant de 1970 à 2038.

 FROM_UNIXTIME(UNIX_TIMESTAMP(time) - MOD(UNIX_TIMESTAMP(time),300))

Bonne chance.

7voto

pawzar Points 93

Pour arrondir à l'heure actuelle, sélectionnez :

FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(column_name) / 3600) * 3600) .

La valeur est exprimée dans la doc du fuseau horaire actuel

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X