Avatar billede Jman Praktikant
19. september 2002 - 15:57 Der er 7 kommentarer og
1 løsning

Problemer med en SQL query

Jeg skal lave en forspørgsel i en database ud fra en bestem dato
Jeg har prøvet at skrive
select * from anntid where TIMESTAMP like '%18-09-2002%'
men den returnerer blank. Jeg ved at denne dato er i DB.
TIMESTAMP returnerer normalt dato og tid. Hvad skal jeg skrive ?
Avatar billede cwd Nybegynder
19. september 2002 - 16:05 #1
er det ikke = når det er dato medmindre den er formateret som tekststreng selvfølgelig
Avatar billede Jman Praktikant
19. september 2002 - 16:08 #2
det er et date felt, men felt indeholder dato og tid (eks. 18-09-2002 13:59:28).
Jeg vil derfor lave en selection på alle poster hvor datoen er 18-09-2002
Avatar billede apocryphal Nybegynder
19. september 2002 - 16:12 #3
Så let slipper man sjældent med datofelter.
Normalt skal datoer angives med #-tegn #18-09-2002#, men det virker sjældent specielt godt.

Du har to gode funktioner tilrådighed når det gælder Datohåndtering i Access og MSSQL Server

DATEDIFF og DATEADD

DATEDIFF kan give forskellen imellem to date, i enheder som millisekunder, sekunder, date, uger, år og det der ligner.

DATEADD giver datoen, for en specifik dato, plus et interval.

Dit problem kan løses med Datediff:

select * from anntid where DATEDIFF(day, TIMESTAMP, '18-09-2002') = 0

Det dette statement gør, er at finde alle de rows, hvor TIMESTAMP's forskel, i dage, sammenlignet med '18-09-2002' er lig med nul.

Ønsker du at bruge datoen vi har lige NU, kan du bruge getDate() i stedet for '18-09-2002'

--
Jonas
Avatar billede apocryphal Nybegynder
19. september 2002 - 16:12 #4
Svar, så jeg kan få nogle point, hvis det virker ;)

--
Jonas
Avatar billede Jman Praktikant
19. september 2002 - 16:15 #5
jeg kan se (nu) at jeg nok er havnet i en forkert kategorina ..
Jeg bør nok lige nævne at det ikke er asp *rødme* men en ren SQL-forespørgsel
Avatar billede Jman Praktikant
19. september 2002 - 16:57 #6
jeg har fundet ud af at jeg ikke kan foretage mit kald fordi der er bindestreger i datofeltet - hvordan kan man komme rundt om det ?
Avatar billede lasse_buck Nybegynder
19. september 2002 - 17:04 #7
Oracle?
select * from anntid where to_char(TIMESTAMP, 'YYYY-MM-DD') = '2002-09-18';
Avatar billede Jman Praktikant
19. september 2002 - 17:23 #8
yes - har lige fundet den
select * from anntid where to_char(timestamp,'DD-MM-YYYY') like '%18-09-2002%'
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