Avatar billede 13thsky Nybegynder
20. februar 2007 - 11:10 Der er 14 kommentarer og
1 løsning

forespørgsel hvor dato er <

Jeg har en database med 5 kolonner. En af de fem kolonner er "dato" af typen "date".

Jeg vil således gerne have hentet de første 10 inputs ud, hvor datoen er mindre end to måneder gammel.

Jeg forestiller mig noget i stil med:
select * from dbnavn where (dato <= 2måneder gammel) limit 1-10

/13
Avatar billede fixxxer Nybegynder
20. februar 2007 - 11:17 #1
select * from tabel were DATE_ADD(dato, 2 INTERVAL 2 MONTH) > NOW()

hvis datoen + 2 måneder er større end dags dato.
altså kan den maks være 2 måneder gammel.
Avatar billede fixxxer Nybegynder
20. februar 2007 - 11:18 #2
Jeg mangler et h i where
Avatar billede 13thsky Nybegynder
20. februar 2007 - 13:51 #3
Hmm...

Det virker ikke når jeg skriver følgende i PHP:

$forsp1 = mysql_query("SELECT * FROM $db WHERE DATE_ADD(dato, 2 INTERVAL 2 MONTH) > NOW() ORDER BY id DESC");

Ved du hvorfor?
Avatar billede fixxxer Nybegynder
20. februar 2007 - 22:16 #4
Prøv:

$forsp1 = mysql_query("SELECT * FROM $db WHERE DATE_ADD(dato, 2 INTERVAL 2 MONTH) > NOW() ORDER BY id DESC") or die(mysql_error());
Avatar billede 13thsky Nybegynder
20. februar 2007 - 23:46 #5
virker sq heller ikke...

/13
Avatar billede 13thsky Nybegynder
20. februar 2007 - 23:51 #6
hvorfor skal det egentligt hedde "2 INTERVAL"
Avatar billede showsource Seniormester
21. februar 2007 - 00:21 #7
DATE_ADD(dato, INTERVAL 2 MONTH)
Avatar billede 13thsky Nybegynder
21. februar 2007 - 00:24 #8
You have an error in your SQL syntax near 'WHERE DATE_ADD(dato, INTERVAL 2 MONTH) > NOW() ORDER BY id DESC'
Avatar billede 13thsky Nybegynder
21. februar 2007 - 00:47 #9
min fejl... der var fejl i $db... Men det jeg skulle bruge var egentligt at dato skulle være mere end to måneder gammel...

hvordan skriver jeg det...
/13
Avatar billede fixxxer Nybegynder
21. februar 2007 - 07:57 #10
Hvis din variabel $db virkelig er en database-navn og ikke et tabel-navn, så forstår jeg godt hvorfor det ikke virker :-)

Hvis ældre end 2 måneder:

$forsp1 = mysql_query("SELECT * FROM tabelnavn WHERE dato < DATE_SUB(NOW(), INTERVAL 2 MONTH) ORDER BY id DESC") or die(mysql_error());


I mit første eksempel var der også kommet et 2-tal for meget med.
Avatar billede jakobdo Ekspert
21. februar 2007 - 07:57 #11
I dit første indlæg skriver du MINDRE end 2 måneder.
I dit sidste indlæg skriver du MERE end 2 måneder.
Du må lige bestemme dig først! :o)
Avatar billede 13thsky Nybegynder
21. februar 2007 - 21:13 #12
det er rigtig, min fejl...

drop et svar fixxxer...
Avatar billede jakobdo Ekspert
21. februar 2007 - 22:06 #13
Og ellers er det jo bare at bytte rundt på < og > :o)
Avatar billede fixxxer Nybegynder
22. februar 2007 - 08:18 #14
Svar
Avatar billede 13thsky Nybegynder
22. februar 2007 - 09:58 #15
TARRRK!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester