2010-08-30 6 views
2

Je dois obtenir une date comme '2010-04-27' comme une chaîne de caractères en php et trouver les 5 dates les plus proches dans un tableau. La date de la table est enregistrée en tant que type de date.SQL Date la plus proche

+0

Ce SQL massif, les ordures, et « SELECT * FROM fois OU date <= date (». $ date. ') LIMIT 0,3 ORDER BY date ASC " – Will

Répondre

3

vous pouvez utiliser DATEDIFF + ABS

SELECT ABS(DATEDIFF(myfield,'2010-04-27')) AS diff FROM mytable ORDER BY diff LIMIT 5; 
+0

Im getting' n'est pas une ressource valide ' – Will

+0

cochez cette case pour" n'est pas une ressource valide ": http://stackoverflow.com/questions/253378/not-a- valid-mysql-resource –

+0

Cela ne semble pas remplir $ row. while ($ row = mysql_fetch_array ($ result)) { La ligne du tableau ne contient aucune donnée de colonne – Will

2

vous pouvez également interroger la différence par exemple. quelque chose comme

abs (datediff (date, date de $))

puis commande par cette

+0

+1 ADAM, j'ai oublié ABS! –

Questions connexes