Version complète: sur le forum
Webmaster Hub :
Comparaison de date
xpatval
mercredi 17 mai 2006 à 10:01
'jour,
Question simple: est-il possible avec une simple requête SQL, de récupérer un enregistrement (l'un des champs de cet enreg est une date), dont celle-ci est la plus proche de la date du jour ?
Je précise que cela ne me pose pas de problème en php, mais si une solution existe avec SQL, ce serait encore mieux...
Merci,
xpatval
TheRec
mercredi 17 mai 2006 à 10:05
Bonjour...
en utilisant les clauses LIMIT et ORDER BY :
SQL
SELECT * FROM ma_table WHERE champ_date <= NOW() ORDER BY champ_date DESC LIMIT 0, 1
Cela te retourner'élément dont la date est la plus récente par rapport au moment ou la requête est exécutée...
robinsonvendredi
mercredi 17 mai 2006 à 10:32
Je ne connais pas la syntaxe Mysql mais pour sql server ça donne ceci :
SELECT * FROM MyTable
WHERE MyTimeStamp= SELECT MAX(MyTimeStamp) FROM MyTable
xpatval
mercredi 17 mai 2006 à 10:40
Ahhh, bien vu pour NOW() que je n'ai encore jamais utilisé...
En tout cas, ça fonctionne !
Merci à vous deux...
xpatval
TheRec
mercredi 17 mai 2006 à 13:31
La solution avec MAX() est correcte aussi, et dans le cas où la date de référence est toujours "aujourd'hui", elle est plus courte et plus rapide (pas d'alogrithme de tri)...
Simplement ça ne laisse pas la possibilité de changer le réféntiel alors qu'avec la forumlation avec NOW(), on peut imaginer mettre un timestamp différent pour effectuer la comparaison...à toi de voir quelle solution te convient le mieux !
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez
cliquer ici.