10. maj 2009 - 21:41
Der er
9 kommentarer og 1 løsning
Nærmeste db udtræk fra i dag
Hej med jer! Jeg har en tabel i en mySQL database, hvor hvert data har en tid gemt i: tid_aar, tid_maaned, tid_dag, tid_time og tid_minut. Hvordan kan jeg nemmest udskrive den tætteste (kommende) data i forhold til datoen i dag? Jeg havde tænkt på noget: SELECT * FROM tabel WHERE DATE_FORMAT(xxx) > NOW() LIMIT 1 Men ved ikke lige helt hvordan, og om det kan lade sig gøre sådan?
Annonceindlæg fra Thales
du har minutter, timer osv. i hver sin kolonne? det er ikke særlig optimalt, du har ikke mulighed for at lave det om til en enkelt kolonne, som gemmer det som et timestamp i stedet? så kan du meget nemmere bruge det...
Ja det hører nok under SQL. Men jeg vidste ikke om det kun kunne lade sig gøre via SQL. #1 > Ja det er i hver sin konlonne. Det er fordi i INSERT situationen, skal brugeren selv vælge år, måned, dag osv.
#1 Det er jo det han skriver, det anbefales dig a ændre dette så du nemmere kan styre dette, du kan jo godt smide hele i samme feldt i DB :)
$okdato = checkdate($_POST["month"],$_POST["day"],$_POST["year"]); // checkdate tjekker om det er en gyldig dato if(false == $okdato) { echo"Fejl i dato'en!"; exit; } $savedate = $_POST["year"]."-".$_POST["month"]."-".$_POST["day"]." ".$_POST["hour"].":".$_POST["minute"].":00"; Så gemmer du $savedate i en kolonne som er af datetime typen
showsource > Det hjalp mig meget. Hvis jeg får det ind i datetime, hvordan kan jeg så lave den SELECT?
SELECT * FROM tabel WHERE datofelt > NOW() ORDER BY datofelt ASC LIMIT 1
Jamen det er super. Har ikke lige afprøvet det færdig endnu, men kan godt se at det også var dét jeg havde i tankerne. Svar.
Vi tilbyder markedets bedste kurser inden for webudvikling