Avatar billede tgl Nybegynder
20. juli 2006 - 15:21 Der er 7 kommentarer og
1 løsning

Finde antal med DateDiff()

Jeg skal have fundet antal datoer som ligger inden for 4 skæringsdage. De er angivet neden for i arrayet.

Det vil jeg gerne trække ud via en SQL-sætning, men det givet ikke det ønskede resultat.

Hvad skal rettes til?



arrSkaeringsdage = Array(56,35,14,7)

For i = 0 To Ubound(arrSkaeringsdage)

Dim SQLdato, rsDato, antaltilmeldtei, antaldatoer
SQLdato = "SELECT h_tilmeld FROM Hold WHERE "&DateDiff("d",CDate(h_tilmeld),CDate(lobsdato_stat)) &"="& arrSkaeringsdage(i)&";"
Set rsDato = dbc.Execute(SQLdato)
antaldatoeri = rsDato.RecordCount

Next



Resultat af ovenstående SQL :
-----------------------------
56 dage : -1
35 dage : -1
14 dage : -1
7 dage : -1
------------------------------
Avatar billede nielle Nybegynder
20. juli 2006 - 20:02 #1
Når din SQL ser sådan her ud:

SQLdato = "SELECT h_tilmeld FROM Hold WHERE " & DateDiff("d",CDate(h_tilmeld),CDate(lobsdato_stat)) & "=" & arrSkaeringsdage(i)&";"

- så kalder du DateDiff() ude i ASP koden, men der kender den jo ikke felterne "h_tilmeld" og "lobsdato_stat" som befinder sig inde i databasen. Derfor fejler det.
Avatar billede tgl Nybegynder
21. juli 2006 - 09:47 #2
OBS! lobsdato_stat er hardcodet ind på asp-siden.

h_tilmeld er ganske rigtigt et fielt i db.

Spørgsmålet er vel så om jeg først skal trække alle datoer ud for derefter at gennemløbe mit recordset med datoer

For i = 0 To Ubound(arrSkaeringsdatoer)

Do while recordset.EOF
  ' noget kode
  recordset.movenext
Loop

Next
Avatar billede nielle Nybegynder
21. juli 2006 - 15:45 #3
De fleste databaser har selv en funktion á la DateDiff() indbygget i sig. I stedet for at bruge ASP's kan du bruge denne til at løse problemet.

Den hedder imidlertid ikke det samme for alle database-systemer, så du skal lige fortælle hvad du egentlig bruger hvis jeg skal kunne hjælpe yderligere. :^)
Avatar billede tgl Nybegynder
21. juli 2006 - 16:41 #4
En access 2000...
Avatar billede nielle Nybegynder
21. juli 2006 - 18:53 #5
Fuktionen hedder også DateDiff i Acces (ikke så underligt efter som det jop er VB Script i din ASP-kode, og VBA i Access).

Du kan f.eks. bruge den sådan:

SQLdato = "SELECT h_tilmeld FROM Hold WHERE DateDiff('d', h_tilmeld, #" & lobsdato_stat & "#) = " & arrSkaeringsdage(i)
Avatar billede tgl Nybegynder
24. juli 2006 - 11:45 #6
Jeg lukker spørgsmålet da opgaven ikke længere skal løses.

Som tak for din tid på dette spørgsmål kan du poste et svar og jeg giver dig pointene.
Avatar billede nielle Nybegynder
24. juli 2006 - 18:49 #7
Jeg håber da at du også har fået lært noget som du kan bruge til næste gang du står i en lignende situation. :^)
Avatar billede tgl Nybegynder
24. juli 2006 - 20:45 #8
Jo, man lærer altid et eller andet ved nye opgaver - point er på vej.
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