Avatar billede nic_the_best Nybegynder
30. september 2005 - 16:21 Der er 21 kommentarer og
1 løsning

Udvælgelse efter dato fra DB

Hej

Jeg prøver at udtrække nogle informationer fra en database.
Jeg ønsker kun det info som kommer EFTER dags dato.
Det har jeg prøvet at gøre sådan her:
strQuery = "SELECT * FROM kursus where forste_dato >= date() Order By forste_dato Asc"

Jeg har så oprettet et par forskellige kurser i databasen, både nogen med start før denne dato og nogen efter.
Men af en eller anden sjov grund så viser den ingen ting. (ingen fejlmeddelse, den skriver bare ikke noget)

Når jeg prøver med den her:
strQuery = "SELECT * FROM kursus Order By forste_dato Asc"
så virker det fint nok, den udvælger jo bare ikke efter dato...

Nogen der kan pin pointe min fejl?
Avatar billede kalp Novice
30. september 2005 - 16:23 #1
DateAdd("D", +1, date)

strQuery = "SELECT * FROM kursus Order By DateAdd("D", +1, forste_dato)Asc"
Avatar billede nic_the_best Nybegynder
30. september 2005 - 16:24 #2
hmmm forklar gerne så jeg ved hvad jeg laver til næste gang.
Prøver det lige engang
Avatar billede kalp Novice
30. september 2005 - 16:24 #3
strQuery = "SELECT * FROM kursus Order By DateAdd("D", 1, forste_dato)Asc"

forklaring kommer nu
Avatar billede kalp Novice
30. september 2005 - 16:26 #4
nic_the_best >>

Vi andvender denne funktion
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vsfctdateadd.asp

DateAdd("D", 1, date)

D = står for day.. altså dag.. Her kunne vi evt. have skrevet M eller Y for henholdsvis Måned og År:)

1 = At der skal ligges 1 dag til.. den ved det er en dag pga. den første parameter er D

date = din dato
Avatar billede nic_the_best Nybegynder
30. september 2005 - 16:26 #5
Får denne fejl:

Microsoft VBScript compilation error '800a0401'

Expected end of statement

front.asp, line 27

strQuery = "SELECT * FROM kursus Order By DateAdd("D", 1, forste_dato)Asc"
---------------------------------------------------^
Avatar billede nic_the_best Nybegynder
30. september 2005 - 16:30 #6
Pilen er ud for D i IE med Times New roman. Her vises den forkert
Avatar billede kalp Novice
30. september 2005 - 16:31 #7
strQuery = "SELECT * FROM kursus Order By DateAdd('D', 1, forste_dato) Asc "
Avatar billede kalp Novice
30. september 2005 - 16:34 #8
Jeg tror den bliver forvirret over "" rundt om D'et..
så vi prøver lige med '' istedet.. ellers prøv helt uden.

strQuery = "SELECT * FROM kursus Order By DateAdd(D, 1, forste_dato) Asc "
Avatar billede nic_the_best Nybegynder
30. september 2005 - 16:35 #9
Hmmm nej...
Nu viser den bl.a. en fra 12-09-2005 og stadig den efter d.d.
Men er der ikke også noget galt; laver du ikke bare en sortering her.
Det jeg ønsker er at den helt fravælger alt fra før i dag
Avatar billede kalp Novice
30. september 2005 - 16:39 #10
strQuery = "SELECT * FROM kursus WHERE forste_dato = DateAdd(D, -1, forste_dato)  ORDER BY forste_dato Asc "

hvis det er før i dag så skal du trække fra.. som der..
hvilken database arbejder du med?
Avatar billede nic_the_best Nybegynder
30. september 2005 - 16:39 #11
access
Avatar billede kalp Novice
30. september 2005 - 16:40 #12
strQuery = "SELECT * FROM kursus WHERE forste_dato <> DateAdd(D, -1, forste_dato)  ORDER BY forste_dato Asc "

skal selvfølgelig være <> for at den ikke henter det fra før. :)
Avatar billede nic_the_best Nybegynder
30. september 2005 - 16:40 #13
Det skal være efter idag og ikke kun en dag efter men alle dage efter...
Avatar billede nic_the_best Nybegynder
30. september 2005 - 16:43 #14
hmmm nej... trækker stadig både før og efter d.d.
Avatar billede kalp Novice
30. september 2005 - 16:47 #15
Jeg laver lige en sidste SQL til dig som fungere (det med access er sådan set vigtigt for mig at vide:))

er forste_dato er typen date/time?

desuden så kan man da ikke sige sådan her

"Jeg ønsker kun det info som kommer EFTER dags dato."

efter dags dato? så eksistere dagen jo ikke endnu..
Avatar billede nic_the_best Nybegynder
30. september 2005 - 16:51 #16
I db ligger det bare som tekst

Meningen er at der skal hentes en liste over kommende kurser. forste_dato indeholder den dag som er kursets første dag.
Avatar billede nic_the_best Nybegynder
30. september 2005 - 16:52 #17
Dem hvor forste_dato er før i dag er jo derfor afhold og skal så ikke vises. Kun de fremtidige :-)
Avatar billede kalp Novice
30. september 2005 - 16:55 #18
Det skal laves om til date/time

ellers virker det ikke:)
Avatar billede kalp Novice
30. september 2005 - 16:57 #19
strQuery = "SELECT * FROM kursus WHERE CDate(forste_dato) > date()  ORDER BY forste_dato Asc "

så burde den her virke
Avatar billede nic_the_best Nybegynder
30. september 2005 - 16:58 #20
OK er gjort
Avatar billede nic_the_best Nybegynder
30. september 2005 - 17:00 #21
NU! virker det.
Tusinde tak for hjælpen
Avatar billede kalp Novice
30. september 2005 - 17:13 #22
Selv tak du:))
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