par
@rthur » 16 févr. 2015, 20:08
C'est probablement faisable avec une seule requête complexe avec mySQL.
Perso, je pense que je ferrai ça en 2 étapes pour simplifier le travail, voila comment moi je le ferrai :
1) Faire une boucle sur tous les 1/4 d'heure d'une journée
2) Faire une requête SQL avec un
TIMEDIFF() entre la date et heure stockée en bdd et la date et heure du quart d'heure étudié.
Cela va te donner l'écart entre la date étudiée et les dates stockées, avec des valeurs positives et négatives suivant que la date de la bdd soit avant ou après la date étudiée.
Il suffit d'ajouter un
ABS() pour avoir la valeur absolue et donc tout en positif.
Et donc pour finir de faire un ORDER BY ton_champ_diff ASC LIMIT 1 pour récupérer la valeur la plus proche du quart d'heure étudié.
C'est probablement faisable avec une seule requête complexe avec mySQL.
Perso, je pense que je ferrai ça en 2 étapes pour simplifier le travail, voila comment moi je le ferrai :
1) Faire une boucle sur tous les 1/4 d'heure d'une journée
2) Faire une requête SQL avec un [url=http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_timediff]TIMEDIFF()[/url] entre la date et heure stockée en bdd et la date et heure du quart d'heure étudié.
Cela va te donner l'écart entre la date étudiée et les dates stockées, avec des valeurs positives et négatives suivant que la date de la bdd soit avant ou après la date étudiée.
Il suffit d'ajouter un [url=http://dev.mysql.com/doc/refman/4.1/en/mathematical-functions.html#function_abs]ABS()[/url] pour avoir la valeur absolue et donc tout en positif.
Et donc pour finir de faire un ORDER BY ton_champ_diff ASC LIMIT 1 pour récupérer la valeur la plus proche du quart d'heure étudié.