Avatar billede steen_e Nybegynder
09. november 2001 - 13:02 Der er 7 kommentarer og
3 løsninger

Dansk dato-format

Jeg har en Access-database med nogle entries med datoer i; datoerne er formatteret efter dansk tradition med dd-mm-yyyy.

Nu skal jeg vælge alle entries ud, som har dato SENERE end lige nu - det gør jeg med:

SELECT id,titel,tid FROM moeder WHERE tid > #\"&now&\"# ORDER BY tid\"

Problemet er, at den udvælger efter amerikansk datoformat! Hvis jeg f.eks. i dag (9. november) vil have listet mine møder, lister den alle møder, der ligger senere end 11. september! (09-11 --> 11-09)

Allerøverst i min ASP-fil har jeg en session.lcid=1030 som skulle give mig dansk datoformat, og hvis jeg response.writer now returneres da også 09-11-2001. Hvad f*nden gør jeg galt?
Avatar billede keysersoze Ekspert
09. november 2001 - 13:06 #1
sæt

<% session.LCID = 1030 %>

i toppen af dokumentet
Avatar billede keysersoze Ekspert
09. november 2001 - 13:07 #2
grunden er at serveren formentlig ikke er dansk - og med denne kode får serveren at vide at følgende side skal fortolkes på dansk
Avatar billede steen_e Nybegynder
09. november 2001 - 13:07 #3
keysersoze > Du har ikke læst, hvad jeg skriver - jeg HAR en session.lcid=1030 øverst i dokumentet...
Avatar billede eagleeye Praktikant
09. november 2001 - 13:14 #4
>>Hvad f*nden gør jeg galt?
det gør SQL-Access interface\'et:

SELECT id,titel,tid FROM moeder WHERE format(tid, \'mm-dd-yyyy\') > #\"&now&\"# ORDER BY tid\"

eller
SELECT id,titel,tid FROM moeder WHERE format(tid, \'dd-mm-yyyy\') > #\"&now&\"# ORDER BY tid\"
Avatar billede keysersoze Ekspert
09. november 2001 - 13:18 #5
hov :)
Avatar billede steen_e Nybegynder
09. november 2001 - 13:21 #6
eagleeye > Jeg har prøvet begge dine forslag, og i begge tilfælde får jeg listet ALLE møder, uanset tiden! Desuden burde det da ikke være nødvendigt at omformattere tiden - så kunne jeg jo bare skrive

nu = month(now) & \"-\" & day(now) & \"-\" & year(now) & \" \" & time

...og så søge på det - men det BURDE da ikke være nødvendigt!
Avatar billede eagleeye Praktikant
09. november 2001 - 13:58 #7
har du både tid og dato i kolonnen tid?

Hvis ikke så prøv med Date istedet for now
Avatar billede freudika Nybegynder
09. november 2001 - 14:17 #8
Den her bruger jeg ... den funker fint

SELECT noget FROM nogetandet
WHERE dato >= cdate(now) ORDER BY dato,tid\"

hvor access er sat op til dk dato ... og hvor jeg har lagt en <% session.LCID = 1030 %> i toppen ... det funker hos mig

Avatar billede steen_e Nybegynder
09. november 2001 - 14:33 #9
Kolonnen tid ser f.eks. sådan her ud:

19-09-2001 19:30:00
22-10-2001 19:30:00
05-11-2001 19:00:00
07-11-2001 19:30:00
15-11-2001 19:30:00
26-11-2001 19:30:00

Min SQL-sætning ser sådan her ud:

SELECT id,titel,tid FROM moeder WHERE tid > #09-11-2001 14:32:03# ORDER BY tid

...og den returnerer hele møget!
Avatar billede steen_e Nybegynder
07. januar 2002 - 09:24 #10
Nu er det længe siden alt sammen, men jeg har stadig ikke fået den til at makke ret. Nu gør jeg i stedet det, at jeg omformatterer tiden til amerikansk format hver gang. Det føles lidt fjollet, men det fungerer godt nok. I får 10 point hver for de gode forslag :-)
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





White paper
Tidsbegrænset kampagne: Overvejer du at udskifte eller tilføje printere i din forretning? Vi kan tilbyde én eller flere maskiner gratis