Avatar billede maxikoll Nybegynder
29. april 2003 - 14:08 Der er 4 kommentarer og
1 løsning

Dato problem i en SELECT fra Access

Hmm, jeg sidder her og kan virkelig ikke forstå hvordan det kan lade sig gøre... de datoer de skulle #¤&¤!#=!¤ :D

Jeg har 4 poster i den database for at teste... Datoerne på dem er (uden tid):

01-05-2003
07-05-2003
14-05-2003
30-05-2003

Jeg har så en SELECT sætning hvor jeg søge indenfor et tidsinterval, det gør jeg således:

"SELECT [DumDato] FROM [Tabellen] WHERE [DumDato] BETWEEN #" & date() & "# AND #" & date() + days & "#) ORDER BY [DumDato]"

Days kan være 3 ting. Værdien 7, 14 og 21 (ligesom uger).

MEN! 14 og 21 virker 100% som de skal, lister det der passer, men vælger jeg 7, så trækker den ALT ud.

Lidt Response.Write...
SELECT [DumDato] FROM [Tabellen] WHERE ([KOpfolgDato] BETWEEN #29-04-2003# AND #06-05-2003#) ORDER BY [DumDato]

Nogen geniale idéer? :)
Avatar billede maxikoll Nybegynder
29. april 2003 - 14:08 #1
KOpfolgDato i Response.write delen er DumDato! :)
Avatar billede eagleeye Praktikant
29. april 2003 - 14:33 #2
SQL bruger US/UK dato format som er yyyy-mm-dd eller mm-dd-yyyy. Så du får byttet rundt på månede og dag. Den kan dog gennemskue at dagen står først hvis man overføre et tal som er størrere end 12. Eks vil 29-04-2003 blive tolket rigtigt da der ikke findes en 29 månede men 06-05.2003 vil tolke som 05-06-2003.

Så du må lave to dato strenge med year, month og day functionen.

datoStr = Year(Date) & "-" & Month(Date) & "-" & Day(Date)
tildato = DateAdd("d",days,Date)
tildato = Year(tildato) & "-" & Month(tildato) & "-" & Day(tildato)

Så SQLen:
"SELECT [DumDato] FROM [Tabellen] WHERE [DumDato] BETWEEN #" & datoStr & "# AND #" & tildato & "#) ORDER BY [DumDato]"
Avatar billede eagleeye Praktikant
29. april 2003 - 14:33 #3
Hvis start altid er dags dato kan du skrive det sådan her:

"SELECT [DumDato] FROM [Tabellen] WHERE [DumDato] BETWEEN Date() AND Date()+" & days & " ORDER BY [DumDato]"
Avatar billede eagleeye Praktikant
29. april 2003 - 14:35 #4
Hvis Date()+days ikke virker inde i SQLen så brug DateAdd:

"SELECT [DumDato] FROM [Tabellen] WHERE [DumDato] BETWEEN Date() AND DateAdd('d'," & days & ",Date()) ORDER BY [DumDato]"
Avatar billede maxikoll Nybegynder
29. april 2003 - 14:43 #5
genialt... virker!

Tak eagleeye :)
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
Kurser inden for grundlæggende programmering

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