Hej! :)
Jag har denna, vilken fungerar utmärkt och tar ut alla poster med ett speciellt User Id = 1:
SQL2 = "SELECT * FROM [Out Box] WHERE [User Id] = 1 ORDER BY [Time In] DESC"
1:an ska ersätas med RecSet("ID")
Jag har jag ett fält, "Time In" som anger datum på formen: "2002-12-19 17:50:27", Datatypen är "Date/Time"
På sidan innan denna finns två fält där man anger första och sista datumet som ska tas med i SQL frågan:
<FORM METHOD="POST" ACTION="outbox2.asp">
Start:
<INPUT TYPE="text" size="11" NAME="startdate" value="2002-12-19">
End:
<INPUT TYPE="text" NAME="enddate" size="11" value="2002-12-23">
<INPUT TYPE="submit" value="Continue">
</FORM>
</TD>
Min fråga lyder, hur ändrar man SQL satsen så att den bara tar med poster med datum inom det angivna intervallet?
ASP, Access2000
Tacksam för hjälp.
BrimbaMedlem sedan dec. 19995 875 inlägg WHERE time_in BETWEEN '2002-12-19' AND '2002-12-23'
PeeerMedlem sedan mars 20025 907 inlägg
Brimba skrev:
WHERE time_in BETWEEN '2002-12-19' AND '2002-12-23'
WHERE time_in BETWEEN [b]#[/b]2002-12-19[b]#[/b] AND [b]#[/b]2002-12-23[b]#[/b]
?? :q
BrimbaMedlem sedan dec. 19995 875 inlägg
??
Ja det stämmer att det är bra att använda # runt datum när man använder access :D. Sorry ;)
Hm...ni missförstår lite nu :OO , de angivna datumen är ju default i fälten, men tanken är att användaren ska ändra på dem.
Försöker med detta:
SQL = "SELECT * FROM [Out Box] WHERE [User Id] = "&idnumber&" and startdate=#"&startdate&"# and enddate=#"&enddate&"# ORDER BY [Time In] DESC"
men det ger felmed:
Microsoft JET Database Engine error '80040e07'
Syntax error in date in query expression '[User Id] = 1 and startdate=## and enddate=##'.
God fortsättning på det nya året. :)
BrimbaMedlem sedan dec. 19995 875 inlägg Du måste väl skriva...
...startdate=#"& Request.Forrm("startdate") &"#...
Eller menar du någonting annat?
p.s
Skriv gärna ut din SQLfråga så som den ser ut precis innan du kör en execute på den.
Response.Write(SQL) exempelvis, det kan göra det enklare att felsöka.
d.s
Puh, detta löste det till slut.
SQL = "SELECT * FROM [Out Box] WHERE [User Id] = "&idnumber&" AND [Time In] BETWEEN #"& Request.Form("startdate") & "# AND #"& Request.Form("enddate")&"# ORDER BY [Time In] DESC;"
*Glad igen*
Hej!
En liten följdfråga ändå. :)
Om man har startdate den tex den 14:e och enddate den 19:e, Så tas inte poster daterade den 19:e med. :(
Dvs, nu blir det "till den 19:e" och inte "till och med den 19:e".
Går det att råda bot på med någon medicin i SQL satsen?
LarsGMedlem sedan dec. 200012 464 inlägg Det beror väl på att du har lagrat tiden också.
SQL = "SELECT * FROM [Out Box] " & _
" WHERE [User Id] = "&idnumber&_
" AND [Time In] >= #"& _
Request.Form("startdate") & "# " & _
" AND [Time in] < #"& _
dateadd("d",1,Request.Form("enddate")) &_
"# ORDER BY [Time In] DESC"
Brimba skrev:
??
Ja det stämmer att det är bra att använda # runt datum när man använder access :D. Sorry ;)
Nyare versioner (nyare än 2000) av access tillåter att man skriver apostrofer runt datum, precis som i de flesta andra dbms.
LarsG skrev:
Det beror väl på att du har lagrat tiden också.
SQL = "SELECT * FROM [Out Box] " & _
" WHERE [User Id] = "&idnumber&_
" AND [Time In] >= #"& _
Request.Form("startdate") & "# " & _
" AND [Time in] < #"& _
dateadd("d",1,Request.Form("enddate")) &_
"# ORDER BY [Time In] DESC"
Fungerar jättebra. Tack :)