Avatar billede submitt Nybegynder
24. august 2005 - 15:34 Der er 5 kommentarer og
1 løsning

Where dato between dato1 and dato2

Hej

Har en Access-database hvor der er en startdato og en slutdato. Begge er "dato-klokkeslet format" og formatet er dd.mm.åååå.

Jeg har så en ASP-side hvor brugeren skal kunne vælge at se alle poster der har en startdato i en given periode. Til det formål har brugeren 4 selectbokse.

I de første 2 selectbokse (fra-funktionen) kan han kan vælge måned (januar til december), og i den næste boks han kan vælge årstal.

I de næste 2 selectbokse (til-funktion) er det det samme.

Dataene sender jeg videre til en ny side der så skal vise alle de pågældende poster. Men hvordan laver jeg SQL-sætningen på denne side???

Det som forvirrer mig er, at jeg i databasen bruger tal (dd.mm.åååå) og i selectboksene bruger jeg bogstaver (eks. marts). I databasen benytter jeg ikke kun måned og år - det gør jeg i selectboksene ....

Nogen der kan hjælpe?

På forhånd tak!!!
Avatar billede borrisholt Novice
24. august 2005 - 18:35 #1
Du kan altid bare selecte date mellem den 1 og den 31 i den pågældende måned. Også selv om der kun er 30 eller 28 dage i en måned.

Lad mig bringe dig et eksempel :

Jeg har en tabel ID defineret således :
CREATE TABLE [dbo].[ID] (
    [KundeNummer] [int] NOT NULL ,
    [Tidspunkt] [smalldatetime] NOT NULL
) ON [PRIMARY]

og nogle data, her kun vist de 10 første poster :

KundeNummer Tidspunkt
40549    1999-06-30 10:38:00
40550    1999-06-30 11:29:00
40551    1999-06-30 11:30:00
40552    1999-06-30 11:36:00
40553    1999-06-30 11:56:00
40554    1999-06-30 12:02:00
40555    1999-06-30 12:11:00
40556    1999-06-30 12:16:00
40557    1999-06-30 12:17:00
40558    1999-06-30 12:19:00


Hvis så jeg ønsker en liste over kunder i februar 2001 skriver jeg :

  Select * from ID (nolock) where convert(varchar,Tidspunkt,112)
  between  '20010201'  and '20010231'


Altså alle kunder mellem den første og den 31 Februar ... Det giver ikke problemer før der kommer 32 dage i Februar, og til den tid skal du sikkert lave så meget andet om aligevel ....

Jens B
Avatar billede submitt Nybegynder
24. august 2005 - 22:34 #2
Hej Jens

Tak for svar, men jeg tror ikke helt den holder vand. Det er i hvert fald ikke den fuldstændige sætning.

SQL-sætningen skal vise alle resultater IMELLEM:

den måned + det år brugeren har valgt i selectboks 1 og 2

OG

den måned + det år brugeren har valgt i selectboks 3 og 4

Den sætning du laver, viser blot alle poster for en bestemt måned.

Mvh.
Kenneth
Avatar billede borrisholt Novice
24. august 2005 - 23:56 #3
Kenneth>> Nu er det her en gruppe omkring SQL Server, har du problemer med dit HTML programering skal du nok spørge et andet sted.

Men pyt jeg kan lidt HTML til husbehov, og kan sagtens hjælpe dig ud af det også.

Du får en parameter liste fra din HTML form der der lidt som den her :
http://somesite.com/prog/adduser?FraManed=1&FraAar=2003&TilManed=3&TilAar=2003

Det der var hele min pointe er at du bare skal select mellem  den første i din fra måned + år til den 31 i din til måned + år

I mit eksempel bruger jeg ISO dato format, passer et andet dig bedre kan du bar bruge det.

Jeg forsøgte at vise dig hvordan du ud fra to strenge kunne lave en dato søgning i din database.

Jens B
Avatar billede submitt Nybegynder
25. august 2005 - 00:29 #4
Jeg tror du har ret i at jeg skal spørge i et andet forum. Thanx!
Avatar billede submitt Nybegynder
25. august 2005 - 00:32 #5
Jeg tror du har ret i at jeg skal spørge i et andet forum. Thanx!
Avatar billede borrisholt Novice
25. august 2005 - 06:24 #6
Hvis du åbner spørgsmålet igen så skal jeg fixe det for dig.

Er det i ASP eller PHP ?

OG kan du ikke lige poste koden til din form
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
Computerworld tilbyder specialiserede kurser i database-management

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