Avatar billede kagge Nybegynder
16. oktober 2002 - 12:53 Der er 11 kommentarer og
1 løsning

søgestreng (dato)

Hvordan laver jeg 3 søgestrenge som hiver de poster ud som har dags dato, sidste 7 dage, sidste 30 dage?

Den kolonne i databasen som indeholder datoen hedder "Spm_dato".
Avatar billede kagge Nybegynder
16. oktober 2002 - 12:55 #1
Søgestrengen skal forresten indeholde en COUNT-funktion, så man kun hiver antallet af posterne ud...
Avatar billede eagleeye Praktikant
16. oktober 2002 - 12:57 #2
hvis det er dato/tid format i kolonnen skal man via SQL bruge mm-dd-yyyy formatet.

Har du poster i databasen som er i fremtiden som ikke skal vælges når records de sidste 7/30 dage vises??
Avatar billede eagleeye Praktikant
16. oktober 2002 - 13:02 #3
Du kan sådan set bruge den samme SQL sætnign til alle 3 du skal bare skifte datoen ud..:

idag = Month(date) & "-" & Day(Date) & "-" & Year(Date)

dato = DateAdd("d", -7, date)
dato = Month(dato) & "-" & Day(Dato) & "-" & Year(Dato)

SQL = "SELECT * FROM tabel WHERE Spm_dato BETWEEN #" & dato & "# AND #" & idag & "#"

rs.Open SQL, Conn, 1
Response.write "antal= " & rs.Recordcount
Avatar billede kagge Nybegynder
16. oktober 2002 - 13:02 #4
Datoerne gemmes i min access-db med datatypen "Dato og klokkeslæt" og har formatet 16-10-02.

Der er ingen poster i fremtiden
Avatar billede eagleeye Praktikant
16. oktober 2002 - 13:05 #5
ok så kan du gøre sådan her:

'for idag skal dato være lig date
dato = date

'for 7 dage tilbage skal dato være:
dato = DateAdd("d", -7, date)

'for 30 dage tilbage skal dato være:
dato = DateAdd("d", -30, date)

'Så kan du bruge den samme SQL sådan her:
dato = Month(dato) & "-" & Day(Dato) & "-" & Year(Dato)
SQL = "SELECT * FROM tabel WHERE Spm_dato >= #" & dato & "#"
Avatar billede kagge Nybegynder
16. oktober 2002 - 13:22 #6
Nu har jeg indsat nedenstående: Nu får jeg antallet for de sidste 30 dage.

Jeg kan ikke lige se hvordan jeg kan få antallet for dags dato og for 7 dage siden. Det skal vel være 3 selvstændige udtræk?

dato = date

dato = DateAdd("d", -7, date)

dato = DateAdd("d", -30, date)

dato = Month(dato) & "-" & Day(Dato) & "-" & Year(Dato)

strSQL48 = "SELECT Spm_dato FROM Data d WHERE d.Spm_dato >= #" & dato & "#"

recordSet.Open strSQL48, forbindelse, adOpenStatic, adLockReadOnly, adCmdText

dat48 = recordSet.RecordCount

recordSet.Close

<font color="red"><%=dat48%> poster.</font>
Avatar billede eagleeye Praktikant
16. oktober 2002 - 13:25 #7
Hvis det skal være på samme side så skal det være 3 selvstændige udtræk. 

Skal du kan havde antallet af record i perioden eller skal du skrive indholdet af recordet ud på siden?
Avatar billede eagleeye Praktikant
16. oktober 2002 - 13:27 #8
Hvis du kun ønsker antallet af record se senetes X antal dage og ikek vil udskrive recordset så kan du lave en Count i SQL sætningen og så finde antallet sådan her.:

dato = Month(dato) & "-" & Day(Dato) & "-" & Year(Dato)
SQL = "SELECT Count(*) as antal FROM tabel WHERE Spm_dato >= #" & dato & "#"

recordSet.Open strSQL48, forbindelse, adOpenStatic, adLockReadOnly, adCmdText

dat48 = recordSet("antal")
Avatar billede kagge Nybegynder
16. oktober 2002 - 13:28 #9
Det skal være på den samme side og jeg skal kun udskrive antallet af records (se sidste linje i kommentar 16/10-2002 13:22:53)
Avatar billede eagleeye Praktikant
16. oktober 2002 - 13:48 #10
Prøv sådan her:

dato = date
dato = Month(dato) & "-" & Day(Dato) & "-" & Year(Dato)
strSQL48 = "SELECT Count(Spm_dato) as Antal FROM Data d WHERE d.Spm_dato >= #" & dato & "#"
recordSet.Open strSQL48, forbindelse, adOpenStatic, adLockReadOnly, adCmdText
antal_idag = recordSet("antal")
recordSet.Close

dato = DateAdd("d", -7, date)
dato = Month(dato) & "-" & Day(Dato) & "-" & Year(Dato)
strSQL48 = "SELECT Spm_dato FROM Data d WHERE d.Spm_dato >= #" & dato & "#"
recordSet.Open strSQL48, forbindelse, adOpenStatic, adLockReadOnly, adCmdText
antal_7dag = recordSet("antal")
recordSet.Close

dato = DateAdd("d", -30, date)
dato = Month(dato) & "-" & Day(Dato) & "-" & Year(Dato)
strSQL48 = "SELECT Spm_dato FROM Data d WHERE d.Spm_dato >= #" & dato & "#"
recordSet.Open strSQL48, forbindelse, adOpenStatic, adLockReadOnly, adCmdText
antal_30dag = recordSet("antal")
recordSet.Close

Response.write "Antal for i dag : " & antal_idag & "<br>"
Response.write "Antal seneste 7 dage : " & antal_7dag & "<br>"
Response.write "Antal seneste 30 dage : " & antal_30dag & "<br>"
Avatar billede kagge Nybegynder
16. oktober 2002 - 13:59 #11
jeg prøver lige at kigge på det. Skal nok vende tilbage om lidt
Avatar billede kagge Nybegynder
16. oktober 2002 - 14:11 #12
Så virker det perfekt.

Tusind tak for hjælpen... Den var vist lidt mere besværlig end jeg først lige troede :)
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