Avatar billede Spotgun Seniormester
16. oktober 2001 - 12:36 Der er 6 kommentarer og
3 løsninger

Problemer med datoformat

Jeg har lidt et problem mht. Access måde at behandle datoer på via SQL-kald.

Hvis jeg f.eks. bruger denne sql-sætning:
SELECT * FROM Fravær WHERE FraDato > #01-10-2001#
så vælger den alle datoer fra d. 10. januar 2001, mens den BURDE vælge datoerne fra 1. oktober 2001.

Hvis jeg derimod bruger:
SELECT * FROM Fravær WHERE FraDato > #13-10-2001#
så vælger den korrekt nok dagen før måneden.

Mit spørgsmål er så nu om der findes en måde (via SQL) at \"tvinge\" Access til at se en dato i et bestemt format (helst DD-MM-ÅÅÅÅ). Jeg bruger en dansk version af Access 2000!
Avatar billede terry Ekspert
16. oktober 2001 - 12:38 #1
Date formats in SQL have to be in MM-DD-YYYY format.



Avatar billede terry Ekspert
16. oktober 2001 - 12:40 #2
You can use Format to change the date format

Format(YourdateField, \"mm-dd-yyyy\")
Avatar billede Spotgun Seniormester
16. oktober 2001 - 12:41 #3
Terry: But if I use fx. #13-10-2001# it recognizez it as DD-MM-YYYY and it all works perfectly... And my version of Access registers the dates in the tables as DD-MM-YYYY if I use Short Date Format. How \'bout that?
Avatar billede terry Ekspert
16. oktober 2001 - 12:44 #4
Where are you entering the SQL?
Access attempts to convert a date field to something it understand an das 13 is NOT a valid month it uses this as the day and 10 as the month.

If you are in SQL view in a query or if you biuld your own SQL theyou should ALWAYS use MM-DD-YYYY this is the correct format for a date in SQL
Avatar billede terry Ekspert
16. oktober 2001 - 12:47 #5
In the database it is saved as a BIG number. The regional settings for thePC determine th eformat when you are viewing dates and the danish and englisg is dd-mm-yyyy whereas thhe US is MM-DD-YYYY and as IBM invented SQL and they are US they chose to use their format as the acceptable.
Avatar billede dr.kaos Nybegynder
16. oktober 2001 - 13:11 #6
Jeg har for kort tid siden rodet med samme problem og kan understødte terry.
den indbyggede funktion \"Format()\" vil løse dit problem

Dr.Kaos
Avatar billede nih Novice
16. oktober 2001 - 13:40 #7
Som det er sagt skal SQL have datoen i mm-dd-yy. Jeg har haft lidt problemmer med funktinen format(), fordi den returnere en variant(dateType) i nogle tilfælde.
Skal din kode virke, også på maskiner der er sat op til amerikansk tid yy-mm-dd bør du bruge funktionen format$(), der returnere en string.
Dit SQLstring skal derfor også indeholde #, for at SQL kan konvertere string til date.

eks:  Sql = Sql & \"#\" & format$(varDate,\"mm-dd-yy\") & \"#\"

Altså: brug format$() + \"#\" i stedet for format()

Niels
Avatar billede a1a1 Novice
16. oktober 2001 - 18:29 #8
Noget der altid virker:

formater dato til US format med år først:
yyyy-mm-dd

Så er der aldrig problemer, lige meget hvilken indstilling din server har
Avatar billede a1a1 Novice
18. oktober 2001 - 20:03 #9
alle svar kan da ikkke være rigtige?
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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