11. marts 2003 - 21:55Der 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
AI bliver først for alvor en del af arbejdet, når teknologien integreres i den måde, vi arbejder på. At have adgang til AI betyder ikke nødvendigvis, at medarbejderne er klar til at bruge den.
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)
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.
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
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...
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"
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?
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.