/ 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
udtræk fra db af bestemte datoer
Fra : Simon Kibsgård


Dato : 16-05-03 08:49

Hej
Jeg prøver at flække en sql-sætning sammen, der kan trække nogle
poster ud af en database mellem 2 angivne datoer. Datoerne skal
hentes i en request.form, men i mit forsøg prøver jeg først med
statiske datoer, for at minimere fejlkilder.

strSQL = "SELECT * FROM kalender WHERE dato > 17-05-2003 AND <
20-05-2003 ORDER BY
Dato"

Men da jeg ikke har forstand på datoer i asp og access og ikke
megen erfaring med flere betingelser i sql, tror jeg den er
langtfra at virke.

Er der en af jer, der har et forslag til hvordan sådan et udtræk
skal drejes?

pft.
/Simon K

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Peter Marckwardt (16-05-2003)
Kommentar
Fra : Peter Marckwardt


Dato : 16-05-03 09:18

Simon Kibsgård wrote in dk.edb.internet.webdesign.serverside.asp:
> Hej
> Jeg prøver at flække en sql-sætning sammen, der kan trække
nogle
> poster ud af en database mellem 2 angivne datoer. Datoerne skal
> hentes i en request.form, men i mit forsøg prøver jeg først med
> statiske datoer, for at minimere fejlkilder.
>
strSQL = "SELECT * FROM kalender WHERE dato > 17-05-2003 AND <
20-05-2003 ORDER BY
> Dato"
>
> Men da jeg ikke har forstand på datoer i asp og access og ikke
> megen erfaring med flere betingelser i sql, tror jeg den er
> langtfra at virke.

Dit AND er et logisk AND, så du har skrevet noget der er umuligt
- Skift AND ud med et OR
Mvh Peter Marckwardt

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Simon Kibsgård (16-05-2003)
Kommentar
Fra : Simon Kibsgård


Dato : 16-05-03 09:41

Peter Marckwardt wrote in dk.edb.internet.webdesign.serverside.asp:
> strSQL = "SELECT * FROM kalender WHERE dato > 17-05-2003 AND
> 20-05-2003 ORDER BY Dato"
>
>> Dit AND er et logisk AND, så du har skrevet noget der er umuligt
>> - Skift AND ud med et OR
>> Mvh Peter Marckwardt

Det kan jeg nu ikke se. datoen kan da godt være større en 17-05-2003
OG mindre en 20-05-2003. Men, selvom jeg skifter ud med OR får jeg
stadig denne fejlmedd:
Syntax error (missing operator) in query expression 'dato >
17-05-2003 AND < 20-05-2003'.

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Ryan Dahl (16-05-2003)
Kommentar
Fra : Ryan Dahl


Dato : 16-05-03 09:59

On Fri, 16 May 2003 08:41:10 +0000 (UTC), Simon Kibsgård
<simonkib@hotmail.com> wrote:

>Peter Marckwardt wrote in dk.edb.internet.webdesign.serverside.asp:
>> strSQL = "SELECT * FROM kalender WHERE dato > 17-05-2003 AND
>> 20-05-2003 ORDER BY Dato"

Hej,

du mangler lige at indsætte dato igen:
"...Where dato > 17-05-2003 and dato < 20-05-2003 order ..."

Vær forøvrigt opmærksom på, at dato-formatet kan drille, hvis din
database læser det som et amerikansk format (hvor dag og måned har
byttet plads).

mvh
Ryan


Jens Gyldenkærne Cla~ (16-05-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 16-05-03 11:59

Simon Kibsgård skrev:

> strSQL = "SELECT * FROM kalender WHERE dato > 17-05-2003 AND <
> 20-05-2003 ORDER BY Dato"

Der er to strukturelle fejl:

a) Du mangler et udtryk efter AND. SQL kan ikke regne ud at det er
det samme datofelt du vil bruge anden gang.

b) Datoer skal stå som tekstværdier (i anførselstegn) eller evt.
som datoer i "access"-format med havelåger (#) omkring.
Lige nu står der faktisk:

....WHERE (dato > -1991) AND (-1998)

- fordi bindestregerne læses som matematisk minus.


> Er der en af jer, der har et forslag til hvordan sådan et udtræk
> skal drejes?

Datoer og databaser er ofte problematiske at håndtere. Det primære
problem er at vi bruger et datoformat (dd-mm-yyyy) der i mange
tilfælde kan opfattes som en gyldig, men forkert, dato efter den
amerikanske standard (mm-dd-yyyy). Man kan fortælle database og
serversproget at datoformatet skal være dansk - men der er efter
min erfaring mange faldgruber.

Jeg foretrækker at man bruger datofunktionerne i asp og access til
at konvertere mellem en dato og dens tekstlige repræsentation.
I dit tilfælde ville jeg skrive:

SELECT *
FROM kalender
WHERE Dato BETWEEN Dateserial(2003, 5, 17) AND
           Dateserial(2003, 5, 20)
ORDER BY Dato"

("x BETWEEN Y AND z" er en lidt hurtigere måde at skrive "x >= y
AND x <= z")
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Gunnar S. Müller (16-05-2003)
Kommentar
Fra : Gunnar S. Müller


Dato : 16-05-03 16:44

Hej Simon
Jeg er ikke klar over om det er et helt generelt problem, men i f.eks.
Access skal man tage i betragtning at det er et amarikansk produkt, som
"taler amerikansk" også mht. datoformat (dvs. mm-dd-yyyy)
For det andet er der en lille krølle mere, man angiver ofte datoer som
#dato#, ligesom man sætter tekster i fnytter.
Og til sidst "WHERE dato > 17-05-2003 AND < 20-05-2003" giver ikke megen
mening overfor en SQL-base...
Jeg vil derfor foreslå at du prøver følgende:

SELECT * FROM kalender WHERE dato > #05-17-2003# AND dato < #05-20-2003#
ORDER BY Dato
Eller
SELECT * FROM kalender WHERE dato BETWEEN #05-18-2003# AND #05-19-2003#
ORDER BY Dato
(Bemærk begge datoer medtages)

Med venlig hilsen
Gunnar S. Müller

"Simon Kibsgård" <simonkib@hotmail.com> skrev i en meddelelse
news:ba2567$5j1$1@sunsite.dk...
> Hej
> Jeg prøver at flække en sql-sætning sammen, der kan trække nogle
> poster ud af en database mellem 2 angivne datoer. Datoerne skal
> hentes i en request.form, men i mit forsøg prøver jeg først med
> statiske datoer, for at minimere fejlkilder.
>
> strSQL = "SELECT * FROM kalender WHERE dato > 17-05-2003 AND <
> 20-05-2003 ORDER BY
> Dato"
>
> Men da jeg ikke har forstand på datoer i asp og access og ikke
> megen erfaring med flere betingelser i sql, tror jeg den er
> langtfra at virke.
>
> Er der en af jer, der har et forslag til hvordan sådan et udtræk
> skal drejes?
>
> pft.
> /Simon K
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials



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

Månedens bedste
Årets bedste
Sidste års bedste