Avatar billede chris96 Nybegynder
28. juni 2004 - 09:26 Der er 14 kommentarer og
1 løsning

Datosøgning i tabel

Hejsa!
Nogen der har en hurtig søgestreng til en database, hvor jeg ønsker at søge på den først kommende event efter dato??? - derudover skal strengen søge på endnu et kriterie... men det er jo simpelt nok...

Det felt jeg ønsker at søge i, har et datoformat af typen dd-mm-åååå

På forhånd tak...
Avatar billede fennec Nybegynder
28. juni 2004 - 09:31 #1
Er datatypen datetime eller tekst??
Avatar billede chris96 Nybegynder
28. juni 2004 - 09:38 #2
Datetime?? Altså feltet er i databasen defineret som en dato/klokkeslet - så det er vel datetime!

Det kan dog laves om til tekst, hvis det gør det lettere!
Avatar billede fennec Nybegynder
28. juni 2004 - 09:45 #3
Gør endelig ikke det :o)
Mange indsætter nemlig datoer som tekst, og det er en fejl.

"select * from event where dato>getdate() order by dato"
Så skulle du gerne få alle de events der er efter dagsdato. Hvis du kun vil have den første kan du jo smide en "TOP 1" på.
Avatar billede netro Nybegynder
28. juni 2004 - 09:46 #4
Access?

Select Top 1 Event From Tabel Where (...) Order By Dato Desc
Avatar billede netro Nybegynder
28. juni 2004 - 09:48 #5
Havde ikke set, at der stod efter dags dato. Så gør du bare, som fennec viser, men du behøver kun at udtrække én post.

Select Top 1 Event From Tabel Where Dato > GetDate() Order By Dato
Avatar billede chris96 Nybegynder
28. juni 2004 - 10:06 #6
Jeg får denne fejl...

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Undefined function 'getdate' in expression.

På den her linie...
strSQL = "Select top 1 * from kampprogram where (dato>getdate()) and (sport = 'Fodbold')  order by dato"
Avatar billede chris96 Nybegynder
28. juni 2004 - 10:06 #7
Jeps - og det er en Access db!
Avatar billede fennec Nybegynder
28. juni 2004 - 10:08 #8
I Access hedder det date() og ikke getDate(). Prøv med det i stedet :o)
Avatar billede chris96 Nybegynder
28. juni 2004 - 10:10 #9
Fantastisk... virker... Smid lige et svar, så får du pointene!
Avatar billede fennec Nybegynder
28. juni 2004 - 10:11 #10
svar.
Avatar billede chris96 Nybegynder
28. juni 2004 - 10:44 #11
Lige et lille spørgsmål mere.... Hvis man vil have tidspunktet med ind også - SKAL det så ligge i samme felt?? Og er det så stadig date, man skal bruge??
Avatar billede fennec Nybegynder
28. juni 2004 - 10:51 #12
1. Ja. tiden skal ligge i samme felt. formatet bliver så dd-mm-åååå tt:mm:ss
2. Nej. Så bruger man now(). Du kan stadig bruge date() funktionen, men hvis du sammenligner date() med en dato, som har timer/minutter bliver tidspunktet i date() sat til 00:00:00.
Avatar billede netro Nybegynder
28. juni 2004 - 11:49 #13
Jeg vil dog råde dig til at lægge datoer ind i formatet mm-dd-yyyy hh:nn:ss eller følge ISO-standarden yyyy-mm-dd hh:nn:ss.
Avatar billede chris96 Nybegynder
28. juni 2004 - 11:57 #14
Hvorfor?
Avatar billede fennec Nybegynder
28. juni 2004 - 12:40 #15
Fordi der kan opstå problemer med datoformaterne.

Du kan sikkert indsætte 31-01-2001 og 01-31-2001 og i begge tilfælde vil den opfatte det som den 31. januar 2001. Men hvad så med 12-01-2001? Er det den 12. januar eller den 1. december??

Hvis du vil være sikker skal du bruge ISO datoen, da samme problem kan opstå med mm-dd-yyyy formatet. Mener nu at formatat er yyyymmdd hh:nn:ss (uden bindestreg). Det er i hvert fald den vi bruger her på arbejdet, og den fungere næsten altid hos os.

Uanset hvad, er du nu blevet informeret om at der kan opstå problemer med datoformaterne. Hvis det virker, som det er nu med det format, kan du jo tage chancen på, at det vil blive ved med det. I mange tilfælde vil det, men hvis det pludselig fejler, skal du måske ændre mange linjer kode, også var det nemmere at gøre det under udviklingsfasen.
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