Avatar billede -thomas- Nybegynder
03. september 2003 - 11:09 Der er 8 kommentarer og
1 løsning

Dato større/mindre end

Jeg prøver at hente alle poster ud fra en given tidsperiode udfra feltet Dato (datetime) med følgende sql:

SELECT * FROM tabel WHERE date_format(Dato,'%Y%m%d') > '01-09-2003' AND date_format(Dato,'%Y%m%d') < '30-09-2003'

Det virker tilsyneladende ikke - hvordan skriver jeg det korrekt?
Avatar billede clausjul Nybegynder
03. september 2003 - 11:14 #1
Har du prøvet

SELECT * FROM tabel WHERE date_format(Dato,'%d-%m-%Y') > '01-09-2003' AND date_format(Dato,'%d-%m-%Y') < '30-09-2003'

?
Avatar billede detox Nybegynder
03. september 2003 - 11:24 #2
Det er nok mere korrekt at bruge MySQL's format '%Y-%m-%d'. Fx:

SELECT * FROM tabel WHERE Dato BETWEEN  '2003-01-09' AND  '2003-09-30'
Avatar billede -thomas- Nybegynder
03. september 2003 - 11:31 #3
Det virker vist med (det er jo 1. sep - 30. sep):

SELECT * FROM tabel WHERE Dato BETWEEN '2003-09-01' AND '2003-09-30'

men så skal jeg have konverteret 01-09-2003 til 2003-09-01 (bruger ASP) for at det duer - nogen der kan klare det?
Avatar billede -thomas- Nybegynder
03. september 2003 - 11:34 #4
Nevermind, har løst det. detox læg et svar, så får du halvdelen for at få mig på rette spor :-)
Avatar billede detox Nybegynder
03. september 2003 - 11:35 #5
Ok da. c",)
Avatar billede -thomas- Nybegynder
03. september 2003 - 11:36 #6
Hvis jeg skriver følgende:

SELECT * FROM tabel WHERE Dato BETWEEN '2003-09-01' AND '2003-09-01'

finder den ikke de poster hvor Dato = '2003-09-01' - hvordan får jeg den til det??
Avatar billede -thomas- Nybegynder
03. september 2003 - 11:41 #7
Har løst det med Dateadd, men ved ikke om det er den korrekte løsning.
Avatar billede detox Nybegynder
03. september 2003 - 11:44 #8
Jeg vil mene:
SELECT * FROM tabel WHERE Dato BETWEEN '2003-09-01' AND '2003-09-02'
skulle virke. Men er det bare en bestemt dag du vil finde kan du jo bare bruge:
SELECT * FROM tabel WHERE Dato = '2003-09-01'
Avatar billede -thomas- Nybegynder
03. september 2003 - 11:46 #9
Ja, jeg tror det virker fint med Dateadd - altså:

SELECT * FROM tabel WHERE Dato BETWEEN dato1 AND DateAdd("d", 1, dato2)

Så virker det som >= dato1 AND <= dato2.

Tak for hjælpen.
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