Avatar billede retep Nybegynder
04. maj 2005 - 21:17 Der er 7 kommentarer og
1 løsning

Sql sætning med datoer

Hej med jer :)

Håber I kan hjælpe med en sql sætning.

Jeg har en tabel "dato" der har 3 tubler; "datoDag", "datoMaaned" og "datoAar".

Jeg har så 6 variable; $fraDag, $fraMaaned, $fraAar, $tilDag, $tilMaaned, $tilAar

Nu skal jeg så hente alle tubler ud imellem fra-datoen og til-datoen, og helst i en enkelt sql-sætning. Men hvordan?

Mvh
Retep
Avatar billede jm0_ Nybegynder
04. maj 2005 - 21:46 #1
Har jeg forstået dit spg korrekt?

Du vil hente indholdet af dine tubler "Datodag, datomaaned, datoaar" ud som output ved hjælp af en SQL sætning?
Avatar billede jm0_ Nybegynder
04. maj 2005 - 21:49 #2
jeg ville gøre det på denne måde hvis jeg har forstået dig korrekt:

$q = mysql_query("SELECT * FROM dato");
while($row = mysql_fetch_array($q)){
echo"$row[datoDag], $row[datoMaaned], $row[datoAar]";
}
Avatar billede coderdk Praktikant
04. maj 2005 - 21:56 #3
Og så er spørgsmålet hvorfor du har gjort det så besværligt for dig selv, at splitte en dato op sådan, når der både er DATETIME og PHP's egen time() :)
Avatar billede jm0_ Nybegynder
04. maj 2005 - 22:34 #4
Det har jeg også undret mig over =)
Avatar billede coderdk Praktikant
04. maj 2005 - 22:55 #5
Eller bare en streng faktisk, hvis du formatterede den som '2005-05-05' ville du kunne lave sætningen som:

SELECT * FROM tabel WHERE dato BETWEEN '2005-03-21' AND '2005-05-05'
Avatar billede retep Nybegynder
04. maj 2005 - 23:36 #6
Ehmmm... Jeg har nok ikke forklaret det helt godt... Jeg vil kun hente de tubler ud som passer i datointervallet fra d. $fraDag / $fraMaaned /$fraAar til $tilDag / $tilMaaned /$tilAar.

Grunden til den, indrømmet, noget underlige måde at gemme datoen er at jeg skal bruge datoer før 1/1-1970. Datetime kunne jeg dog stadig have brugt, men sådan blev det ikke lige ;)
Avatar billede retep Nybegynder
05. maj 2005 - 00:04 #7
Fik selv regnet den ud: 

select * from dato where (datoAar >= $fraAar) and (datoMaaned >= $fraMaaned or datoAar > $fraAar) and (datoDag >= $fraDag or (datoMaaned > $fraMaaned or datoAar > $fraAar)) and (datoAar <= $tilAar) and (datoMaaned <= $tilMaaned or datoAar < $tilAar) and (datoDag <= $tilDag or (datoMaaned < $tilMaaned or datoAar < $tilAar))

Lader den lige stå lidt, points, karma og tak gives, hvis der er en der kan finde en evt. fejl i ovenstående.

Tak for kommentarene indtil nu :)

Mvh
Retep
Avatar billede retep Nybegynder
06. maj 2005 - 00:02 #8
Lukker, da ovenstående virker fint... ;)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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