/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
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
Fra : Ukendt


Dato : 23-08-06 13:59

Hej NG
Jeg har et datofelt(Oprettet) i en database i standardformat(dd-mm-yyyy
hh:mm:ss)
Nu vil jeg så søge KUN på datoen i feltet...

Variabel:
Dato=DateSerial(Year(Request.Form.Item("txtDato")),
Month(Request.Form.Item("txtDato")), Day(Request.Form.Item("txtDato")))

Min sql:
Sql="SELECT * FROM qryOmsaetDag Where Oprettet=" & Dato

Der returneres ingen poster, men der skal være poster...

Kan i lure fejlen...
Bjarne






 
 
Ukendt (23-08-2006)
Kommentar
Fra : Ukendt


Dato : 23-08-06 16:01


"bsn" <bsnsnabelaoncabledotdk> skrev i en meddelelse
news:44ec5291$0$134$edfadb0f@dread11.news.tele.dk...
> Hej NG
> Jeg har et datofelt(Oprettet) i en database i standardformat(dd-mm-yyyy
> hh:mm:ss)
> Nu vil jeg så søge KUN på datoen i feltet...
>
> Variabel:
> Dato=DateSerial(Year(Request.Form.Item("txtDato")),
> Month(Request.Form.Item("txtDato")), Day(Request.Form.Item("txtDato")))
>
> Min sql:
> Sql="SELECT * FROM qryOmsaetDag Where Oprettet=" & Dato
>
> Der returneres ingen poster, men der skal være poster...
>
> Kan i lure fejlen...

Har prøvet noget andet

Variabel:
Dato = "#" & Month(Request.Form.Item("txtDato")) & "-" &
Day(Request.Form.Item("txtDato")) & "-" & Year(Request.Form.Item("txtDato"))
& "#"

Min sql:
SELECT * FROM qryOmsaetDag Where DateSerial(Year(Oprettet), Month(Oprettet),
Day(Oprettet))=#8-21-2006#

Dette virker når jeg tester lokalt - localhost...
Når jeg uploader til mit webhotel, så virker det ikke...
Får fejlen:

Microsoft JET Database Engine error '80040e07'
Data type mismatch in criteria expression.

/admin_/omsaet_dag_res.asp, line 36

Linie 36=RS.Open Sql, Conn, 3, 3
lige efter Sql

Spøjst...
Kan i hjælpe...
Bjarne



Jørn Andersen (23-08-2006)
Kommentar
Fra : Jørn Andersen


Dato : 23-08-06 18:09

On Wed, 23 Aug 2006 17:01:15 +0200, "bsn" <bsnsnabelaoncabledotdk>
wrote:

>"bsn" <bsnsnabelaoncabledotdk> skrev i en meddelelse
>news:44ec5291$0$134$edfadb0f@dread11.news.tele.dk...
>> Hej NG
>> Jeg har et datofelt(Oprettet) i en database i standardformat(dd-mm-yyyy
>> hh:mm:ss)

Uanset hvad dit dato-*format* er i databasen, så er værdien altid en
"rigtig" dato-tidværdi.
Dvs. der er altid år, måned, dag, time, minut, sekund.

<NB Vigtigt>
Den vigtigste tommelfinger-regel, når man arbejder med datoer mellem
asp-sider og database er *altid* at forespørge på dato-*værdier* -
ikke i et bestemt dato-*format*.
</NB Vigtigt>

På den måde gør man sig uafhængig af forskelle i
land-/sprog-indstillinger de to steder.

>> Nu vil jeg så søge KUN på datoen i feltet...
>>
>> Variabel:
>> Dato=DateSerial(Year(Request.Form.Item("txtDato")),
>> Month(Request.Form.Item("txtDato")), Day(Request.Form.Item("txtDato")))
>>
>> Min sql:
>> Sql="SELECT * FROM qryOmsaetDag Where Oprettet=" & Dato
>>
>> Der returneres ingen poster, men der skal være poster...
>>
>> Kan i lure fejlen...

Fejlen er - som du tilsyneladende også selv har fundet ud af - at de
to værdier ikke er ens: En dato-værdi uden tids-information sætter
tiden til 00:00:00.
Og 23.8.06 11:23:43 er ikke det samme som 23.8.06 00:00:00 :)

>Har prøvet noget andet
>
>Variabel:
>Dato = "#" & Month(Request.Form.Item("txtDato")) & "-" &
>Day(Request.Form.Item("txtDato")) & "-" & Year(Request.Form.Item("txtDato"))
>& "#"
>
>Min sql:
>SELECT * FROM qryOmsaetDag Where DateSerial(Year(Oprettet), Month(Oprettet),
>Day(Oprettet))=#8-21-2006#

Du er på rette spor.

>Dette virker når jeg tester lokalt - localhost...
>Når jeg uploader til mit webhotel, så virker det ikke...

Der er sikkert forskelle på sprog-/lande-indstillingerne på de to
servere. Se evt.:
<url: http://www.asp-faq.dk/search/?query=&category=5>

Jeg tror den enkleste måde er:
intDag = Day(Request.Form("txtDato"))
intMaaned = Month(Request.Form("txtDato"))
intAar = Year(Request.Form("txtDato"))

[Her skal nu nok have lidt validering, som checker, at du rent faktisk
får tal ud som resultat.)

og Sql'en:
.... WHERE Year(Oprettet) = " & intAar & _
" AND Month(Oprettet) = " & intMaaned & _
" AND Day(Oprettet) = " & intDag & ";"

På den måde sparer du en masse konverteringer og tvivlsomme
dato-formater.

>Kan i hjælpe...

Håber det bringer dig videre.

Good luck!

--
Jørn Andersen,
Brønshøj

Ukendt (23-08-2006)
Kommentar
Fra : Ukendt


Dato : 23-08-06 18:52


"Jørn Andersen" <jorn@jorna.dk> skrev i en meddelelse
news:qp1pe2dkto88d944ojgdtvd4oj4qm8158a@4ax.com...
> On Wed, 23 Aug 2006 17:01:15 +0200, "bsn" <bsnsnabelaoncabledotdk>
> wrote:
>
>>"bsn" <bsnsnabelaoncabledotdk> skrev i en meddelelse
>>news:44ec5291$0$134$edfadb0f@dread11.news.tele.dk...
>>> Hej NG
>>> Jeg har et datofelt(Oprettet) i en database i standardformat(dd-mm-yyyy
>>> hh:mm:ss)
>
> Uanset hvad dit dato-*format* er i databasen, så er værdien altid en
> "rigtig" dato-tidværdi.
> Dvs. der er altid år, måned, dag, time, minut, sekund.
OK - det lettede...

> <NB Vigtigt>
> Den vigtigste tommelfinger-regel, når man arbejder med datoer mellem
> asp-sider og database er *altid* at forespørge på dato-*værdier* -
> ikke i et bestemt dato-*format*.
> </NB Vigtigt>
Skriver det bag øret...

> Fejlen er - som du tilsyneladende også selv har fundet ud af - at de
> to værdier ikke er ens: En dato-værdi uden tids-information sætter
> tiden til 00:00:00.
> Og 23.8.06 11:23:43 er ikke det samme som 23.8.06 00:00:00 :)
Du har ret...

> Jeg tror den enkleste måde er:
> intDag = Day(Request.Form("txtDato"))
> intMaaned = Month(Request.Form("txtDato"))
> intAar = Year(Request.Form("txtDato"))
>
> [Her skal nu nok have lidt validering, som checker, at du rent faktisk
> får tal ud som resultat.)
>
> og Sql'en:
> ... WHERE Year(Oprettet) = " & intAar & _
> " AND Month(Oprettet) = " & intMaaned & _
> " AND Day(Oprettet) = " & intDag & ";"
>
> På den måde sparer du en masse konverteringer og tvivlsomme
> dato-formater.
>
> Håber det bringer dig videre.
For sadan hvor det virker...)
Tak for hjælpen...
Bjarne



Søg
Reklame
Statistik
Spørgsmål : 177514
Tips : 31968
Nyheder : 719565
Indlæg : 6408622
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste