Avatar billede pfp Nybegynder
11. marts 2003 - 21:55 Der er 27 kommentarer og
2 løsninger

mySQL, Select og dato...

Hej,

Jeg har en tabel (mySQL database) der indeholder en række tilbud. For hver af disse tilbud har jeg angivet en startdato samt en slutdato.

Nu vil jeg gerne med min SQL sætning fange alle de tilbud der er aktuelle, altså forstået på den måde at tilbud hvor startdatoen er mindre end i dag ikke skal med og tilbud hvor slutdatoen er større end i dag skal heller ikke med.

Mit start og slut dato felt indeholder f.eks. følgende data:

tilbud_start = 2003-03-09

tilbud_slut = 2003-03-24

Jeg har derudover defineret en variabel kaldet dagsdato som indeholder Date() i formatet yyyy-mm-dd (altså samme format som i db’en)

Jeg har så forsøgt med denne SQL, men uden held:

SQL = ”SELECT * FROM Tilbud WHERE 'tilbud_start' <=” & dagsdato & ” AND 'tilbud_slut' <=” & dagsdato

Er der nogen der kan hjælpe mig med den?

Venligst,

Peter F. Poulsen
Avatar billede medions Nybegynder
11. marts 2003 - 22:03 #1
Jeg bruger denne:

    lngMonday = Date() - Weekday(Date(), vbMonday) + 1
    lngMonday = Year(lngMonday) & "-" & Month(lngMonday) & "-" & Day(lngMonday)
   
    lngFriday = DateAdd("d", 4, Date() - Weekday(Date(), vbMonday) + 1)
    'lngFriday = DateAdd("d", 4, Date() - Weekday(Date(), vbMonday) + 1)
    lngFriday = Year(lngFriday) & "-" & Month(lngFriday) & "-" & Day(lngFriday)
   
    If Request.QueryString("Find") = "All" Then
        strSQL = "SELECT * FROM tblOrdres ORDER BY Date " & Request.QueryString("OrderBy")
    Else
        strSQL = "SELECT * FROM tblOrdres WHERE date BETWEEN '" & lngMonday & "' AND '" & lngFriday & "' ORDER BY Date DESC"
    End If
    Set objRs = objConn.Execute(strSQL)

//>Rune
Avatar billede pfp Nybegynder
11. marts 2003 - 22:06 #2
Øhh hvad er det med mandag og fredag? Jeg kunne vel ikke lokke dig til at lave et eksempel på en SQL der passer til min db??

Jeg giver gerne flere point, hvis det har interesse.
Avatar billede medions Nybegynder
11. marts 2003 - 22:09 #3
Hvad mener du med en SQL der passer til din DB?

strSQL = "SELECT * FROM tblOrdres WHERE tilbud_start <=  '" & dagsdato & "' AND tilbud_slut <= '" & dagsdato & "' DESC"

//>Rune
Avatar billede pfp Nybegynder
11. marts 2003 - 22:17 #4
Hej Rune,

Ja det var det jeg mente...:-)

Men det virker ikke :-(

Jeg har kun et felt i tabellen lige nu.
tilbud_start = 2003-03-07 (7. marts 03)
tilbud_slut = 2003-03-09 (9. marts 03)

Men alligevel bliver denne post udvalgt og vist, og det skulle den jo helst gerne ikke..
Avatar billede medions Nybegynder
11. marts 2003 - 22:19 #5
Hmm hvad indeholder dagsdato?

//>Rune
Avatar billede pfp Nybegynder
11. marts 2003 - 22:22 #6
dagsdato = 2003-03-11
Avatar billede pfp Nybegynder
11. marts 2003 - 22:23 #7
skal der plinger omkring tilbud_start og tilbud_slut også??
Avatar billede pfp Nybegynder
11. marts 2003 - 22:26 #8
Nej okay nu har jeg prøvet, det gør ingen forskel med plinger omkring tilbud_start og tilbud_slut.
Avatar billede medions Nybegynder
11. marts 2003 - 22:28 #9
DagsDato = CDate(Year(Date) & "-" & Month(Date) & "-" & Day(Date))
strSQL = "SELECT * FROM tblOrdres WHERE tilbud_start <=  '" & DagsDato & "' AND tilbud_slut <= '" & DagsDato & "' DESC"

//>Rune
Avatar billede pfp Nybegynder
11. marts 2003 - 22:32 #10
Det virker desværre heller ikke, men jeg prøver lige at anvende din Dagsdato format når jeg indsætter datoerne i databasen for at være sikker på at det er helt ens.
Avatar billede medions Nybegynder
11. marts 2003 - 22:33 #11
ok
Avatar billede pfp Nybegynder
11. marts 2003 - 22:37 #12
Nej det dur heller ikke for hvis jeg bruger metoden fra DagsDato og så indsætter det indtastede resultat istedet for Date så bliver datoformatet helt forkert i databasen...f.eks. 2009-03-20
Avatar billede medions Nybegynder
11. marts 2003 - 22:40 #13
Jamen så prøver vi da bare på en helt anden måde...

strSQL = "SELECT * FROM tblOrdres WHERE tilbud_start <=  CURDATE() AND tilbud_slut <= CURDATE() DESC"

CURDATE() er en indbygget funktion i MySQL som finder den korrekte dato...

//>Rune
Avatar billede pfp Nybegynder
11. marts 2003 - 22:45 #14
Desværre ej heller det virker, den melder først fejl ved DESC og hvis jeg fjerner det vælger den ikke nogen poster ud selvom tilbudet burde være aktivt...
Avatar billede medions Nybegynder
11. marts 2003 - 22:47 #15
Hmm det skulle altså virke!!!

-Er felterne tilbud_start og tilbud_slut datofelter?

//>Rune
Avatar billede pfp Nybegynder
11. marts 2003 - 22:48 #16
Ja de er begge af type DATE
Avatar billede pfp Nybegynder
11. marts 2003 - 22:48 #17
Jeg må også ærligt indrømme at jeg ikke fatter hvorfor det ikke virker.
Avatar billede medions Nybegynder
11. marts 2003 - 22:51 #18
Heller ikke mig :-(((

//>Rune
Avatar billede pfp Nybegynder
11. marts 2003 - 22:52 #19
Okay, det er der jo ikke noget at gøre ved. :-(
Avatar billede pfp Nybegynder
11. marts 2003 - 22:52 #20
Skal jeg indstille Session.LCID til noget?
Avatar billede medions Nybegynder
11. marts 2003 - 22:54 #21
Prøv med

Session.LCID = 1030

//>Rune
Avatar billede eagleeye Praktikant
12. marts 2003 - 01:29 #22
Umiddelbart har du vend <= forkert ved tilbud_slut, den vil kun finde den hvis tilbud_slut er ældre DagsDato, så den vil aldig finde noget da tilbud_slut > tilbud_start:

Gammel SQL:
strSQL = "SELECT * FROM tblOrdres WHERE tilbud_start <=  '" & DagsDato & "' AND tilbud_slut <= '" & DagsDato & "' DESC"

Ny SQL:
strSQL = "SELECT * FROM tblOrdres WHERE tilbud_start <=  '" & DagsDato & "' AND tilbud_slut >= '" & DagsDato & "' DESC"
Avatar billede pfp Nybegynder
12. marts 2003 - 12:46 #23
eagle -> Ja det har du ret i. Men det virker heller ikke med den nye SQL du har skrevet, men bruger jeg >= i medions forslag med CURDATE() så virker det :-)

Tusind tak for hjælpen begge to. Er det i orden at jeg deler point imellem Jer?
Avatar billede medions Nybegynder
12. marts 2003 - 14:46 #24
Helt i orden med mig :-)

//>Rune
Avatar billede pfp Nybegynder
12. marts 2003 - 15:06 #25
Eagle smider du et svar?
Avatar billede pfp Nybegynder
14. marts 2003 - 18:21 #26
?
Avatar billede eagleeye Praktikant
15. marts 2003 - 17:00 #27
Ok kommer her:)
Avatar billede medions Nybegynder
15. marts 2003 - 17:10 #28
*G*
Thx 4 Poinz

//>Rune
Avatar billede pfp Nybegynder
15. marts 2003 - 17:11 #29
Det er mig der taker :-)
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