Avatar billede rasmusr Nybegynder
14. september 2002 - 23:44 Der er 23 kommentarer og
3 løsninger

Dato

Ja du kan sikkert se hvad det er jeg forsøger i koden, men det fungere ikke. Den finder slet ikke nogen resultater selvom jeg søger på en periode hvor jeg ved der er nogle. Det underlige er at jeg bruger en SQL sætning et andet sted der minder om denne her som fungere.

WHERE tid < " & til & " AND tid > " & formatdatetime(request.form("fra"))

Det er den bid af SQL'en det går galt med.
Der kommer ikke nogen fejl og den finder heller ikke noget.

Det er en access database.
Avatar billede rasmusr Nybegynder
14. september 2002 - 23:45 #1
Hovsa da.
Til bliver sat her:

    if request.form("til") = "" then
        til = date
    else
        til = formatdatetime(request.form("til"))
    end if
Avatar billede mccannon Nybegynder
14. september 2002 - 23:47 #2
ag = day(now)
        maaned = month(now)
        aar = year(now)
        IF Len(Dag) = 1 THEN
          Dag = 0 & Dag
        END IF
        IF Len(maaned) = 1 THEN
          maaned = 0 & maaned
        END IF
    dato = aar & maaned & dag

hvis du laver det om til rent tal er det meget lettere :)
Avatar billede askhoej Praktikant
14. september 2002 - 23:49 #3
prøv med:

SELECT * FROM tabel WHERE dato_kolonne BETWEEN dato_1 AND dato_2

/askhoej
Avatar billede rasmusr Nybegynder
15. september 2002 - 00:00 #4
SELECT * FROM tabel WHERE dato_kolonne BETWEEN dato_1 AND dato_2
giver det samme resultat.

Hvad er det jeg skal lave om til rent tal. Både dato konlonnen og det der bliver søgt på?

Hvis det kun er det der bliver søgt på jeg laver om til tal så er det nemlig alle felter der kommer ud selvom det ikke er hvad jeg har søgt.
Avatar billede rasmusr Nybegynder
15. september 2002 - 00:02 #5
Det må være en måde at gøre det på uden det skulle være nødventigt at nedbryde og bygge det op igen selv.
Jeg har forresten også forsøgt med datodiff funktionen men det gav heller ikke de rigtige resultater.
Avatar billede askhoej Praktikant
15. september 2002 - 00:03 #6
har du husket at sætte plinger uden om?

WHERE dato = '" & din_dato & "'
Avatar billede rasmusr Nybegynder
15. september 2002 - 00:03 #7
Forresten så er det der står i dato kolonnnen både dato og klokkeslet hvorimod det der bliver søgt kun er dato.
Avatar billede rasmusr Nybegynder
15. september 2002 - 00:05 #8
Hvis jeg sætter ' rundt om så kommer denne fejl:
AND tid BETWEEN '01-01-02' AND '13-09-02'
Microsoft OLE DB Provider for ODBC Drivers fejl '80040e07'

[Microsoft][ODBC Microsoft Access-driver] Datatyperne stemmer ikke overens i kriterieudtrykket.

/counter/produkter.asp, linje 81
Avatar billede rasmusr Nybegynder
15. september 2002 - 00:05 #9
Hov
AND tid BETWEEN '01-01-02' AND '13-09-02'
er self. ikke med i fejlen
Avatar billede stoney96 Nybegynder
15. september 2002 - 00:08 #10
Husk at datofelter omgrænses med # når man skriver mod en access-db som:

BETWEEN #01-01-02# AND #13-09-02#
Avatar billede mccannon Nybegynder
15. september 2002 - 00:09 #11
det er bare en let måde at komme ud over datoproblemer med..
Avatar billede rasmusr Nybegynder
15. september 2002 - 00:17 #12
Prøv at se det her:
AND tid BETWEEN #01-01-02# AND #19-09-02# 
giver disse resultater
Guldkamel 21
Karameller 1

AND tid BETWEEN #01-01-02# AND #31-12-02# 
Giver ingen resultater!
Avatar billede rasmusr Nybegynder
15. september 2002 - 00:19 #13
Maccannon >> du svare ikke på mit spørgsmål:
Hvad er det jeg skal lave om til rent tal. Både dato konlonnen og det der bliver søgt på?
Avatar billede rasmusr Nybegynder
15. september 2002 - 00:21 #14
Hvis jeg søger kun med tal så fungere det stadig ikke?
Hvis man skal til selv at bygge datoen hvad er så ideen med datofelter i databasen?
Avatar billede mccannon Nybegynder
15. september 2002 - 00:25 #15
ja feltet i db'en sakl laves om til et tal felt, ellers melder den fejl, da datofelter i en db i praksis er et tekstfelt
og ja, de parameter som kommer med i i sql forespørgslen skal også laves om til tal
så feks 13/12/2002 bliver til 20021213

dag = day(now)
maaned = month(now)
aar = year(now)
IF Len(Dag) = 1 THEN
Dag = 0 & Dag
END IF
IF Len(maaned) = 1 THEN
maaned = 0 & maaned
END IF
dato = aar & maaned & dag
Avatar billede rasmusr Nybegynder
15. september 2002 - 00:26 #16
Jeg har løst det nu.
Jeg har lavet feltet i databasen om til tekst, og den aktuelle del af sql'en ser nu således ud:
tid BETWEEN '" & request.form("fra") & "' AND '" & til & "'
Avatar billede mccannon Nybegynder
15. september 2002 - 00:27 #17
ideen med datofelter i en db er god nok, vhis det vr sådan at der var ens datoformater, ..men det er der ikke, datoformater skifter rundt efter hvad verdensdel du er i ..ret træls
Avatar billede rasmusr Nybegynder
15. september 2002 - 00:28 #18
Vi deler.
Stoney96 sorry men jeg fik ikke noget ud af dit svar.
Avatar billede mccannon Nybegynder
15. september 2002 - 00:29 #19
så vidt jeg husker når det er tekstfelt, så er det kun det første tal man kan "regne" på
feks

du har 13/12/02
så er det kun 13 den regner på
Avatar billede rasmusr Nybegynder
15. september 2002 - 00:30 #20
Ja det har du ret i.
Det kan vidst klares ved at sætte et stump kode ind der fortæller hvilke dato settings der skal bruge, men jeg kan ikke lige huske den.
Avatar billede mccannon Nybegynder
15. september 2002 - 00:31 #21
kan jeg heller ikke, jeg gidder nemlig ikke at skulle ind og ændre sourcekode bare fordi man flytter site :) kald mig doven
Avatar billede rasmusr Nybegynder
15. september 2002 - 00:31 #22
Hmm i andre sammenhænge måske, men ved sammenligning fungere det her fint.
Avatar billede rasmusr Nybegynder
15. september 2002 - 00:34 #23
Nu lyder jeg nok meget dum, men hvad er det her:
Session.LCID = 1030
Det har jeg stående i min kode, jeg kan ikke huske om det var noget jeg brugte til at formatere dato til DK settings engang. Kan i svare mig på det?
Avatar billede mccannon Nybegynder
15. september 2002 - 00:36 #24
det er landekode settings :)
den der er den danske
Avatar billede rasmusr Nybegynder
15. september 2002 - 00:41 #25
OK det tænke jeg nok.
Så er det vidst noget med at hvis man ikke bruger den når man bruger # rundt om dato'er så recikere man at den omformatere datoen.
Avatar billede mccannon Nybegynder
15. september 2002 - 00:45 #26
som sagt jeg aner ikke en pind om det, da jeg altid bruger dato i talformat som vist ovenfor
og det har jeg endnu ikke haft problemer med :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester