Version complète: sur le forum Webmaster Hub : Comparaison de date
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > SQL
xpatval
'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
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
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
Ahhh, bien vu pour NOW() que je n'ai encore jamais utilisé...
En tout cas, ça fonctionne !

Merci à vous deux...

xpatval
TheRec
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.