/ Forside/ Teknologi / Udvikling / ASP / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn 

Kodeord  


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Dato og BETWEEN AND
Fra : pirok
Vist : 516 gange
10 point
Dato : 27-02-01 10:40

Jeg har problemer med at fiske poster ud med denne forespørgsel (en annonce må stå på siden i 1 måned):
Slut=Date()
Start=DateAdd("m", -1, Date)
strSQL="Select * from Table WHERE dato BETWEEN "
strSQL=StrSQL & Start & " AND " & Slut
Set rs = conn.execute (strSQL)       
do until rs.EOF
response.write rs ("rubrik") & ": " & rs ("tekst")
rs.movenext
loop
Selv hvis jeg kører forespørgslen i Access er forespørgslen tom HM!

 
 
Kommentar
Fra : konsulenten


Dato : 27-02-01 23:12

Hej Pirok,

Prøv at skrive dine datoer med plinger :

strSQL="Select * from Table WHERE dato BETWEEN "
strSQL=StrSQL & "'" & Start & "' AND '" & Slut & "'"

Hvis dette ikke virker, kan det være fordi du køre med 2 forskellige dato formatter på sql server og asp, f.eks. 12/2-2001 forståes af det en system som 12 februar, og i det system som 2 december. Hvis dette er tilfældet, så skal du prøve at formatere dine datoer før du sammenligner dem.

>>Konsulenten


Accepteret svar
Fra : AntonV

Modtaget 10 point
Dato : 28-02-01 00:13

Hej Pirok
For at gøre det universelt skal du formatere dine datoer og lave en forespørgsel med disse datoer.
Prøv følgende (Jeg er ikke så stiv i VB script mere, men kommandoerne findes da):

If CInt(Day(Date)) < 10 Then
SlutDag = "0" & CStr(Day(Date))
Else
SlutDag = CStr(Day(Date))
End If
If CInt(Month(Date)) < 10 Then
SlutMaaned = "0" & CStr(Month(Date))
Else
SlutMaaned = CStr(Month(Date))
End If

SlutAar = Year(Date)

If CInt(Day(DateAdd("m", -1, Date))) < 10 Then
StartDag = "0" & CStr(Day(DateAdd("m", -1, Date)))
Else
StartDag = CStr(Day(DateAdd("m", -1, Date)))
End If
If CInt(Month(DateAdd("m", -1, Date))) < 10 Then
StartMaaned = "0" & CStr(Month(DateAdd("m", -1, Date)))
Else
StartMaaned = CStr(Month(DateAdd("m", -1, Date)))
End If

StartAar = Year(DateAdd("m", -1, Date))

Slut = " {d '" & SlutAar & "-" & SlutMaaned & "-" & SlutDag & "'} "
Start = " {d '" & StartAar & "-" & StartMaaned & "-" & StartDag & "'} "

strSQL = "Select * from Table WHERE dato BETWEEN "
strSQL = strSQL & Start & " AND " & Slut

Funktionen {d 'YYYY-MM-DD'} er SQL-92 compliant og formatere din dato til noget alle
ODBC kilder kan forstå (så vidt jeg ved). Du skal angive datoen på formen YYYY-MM-DD
ellers så duer det ikke. Derfor har jeg lavet noget konvertering af datoerne, da der kun
returneres et ciffer hvis dagen/måneden er under 10. Jeg ved ikke helt om år også skal
tjekkes for om der er 4 cifre (VB returnerer altid 4 cifre).
Hvis VBScript understøtter Format ville det være nemmere, men jeg kan ikke finde noget
om dette, kun FormatDateTime.
Det kan garanteret også gøres mere nydeligt, men du forstår nok ideen.

Et forslag.
Inden du løber igennem det returnerede recordset skal du nok lige lave en rs.MoveFirst og
et tjek af at du ikke har rs.bof = true and rs.eof = true.

mvh
AntonV


Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177409
Tips : 31962
Nyheder : 719565
Indlæg : 6407779
Brugere : 218874

Månedens bedste
Årets bedste
Sidste års bedste