Avatar billede wilweb Nybegynder
09. januar 2004 - 15:55 Der er 17 kommentarer og
3 løsninger

det uendelige dato spørgsmål DK/US

Hvordan gør i når i vil skrive en dato ned i en access db? og så altid vil have at datoen skal ud skrives i DK format, uanset server sprog!

'Jeg har fx (hurtigt ridset op).
strDato=dato()

'Ned i en database:
strSQL = "INSERT INTO opgaver (strDato) VALUES (#" & strDato & "#)"

'Hent fra datobasen:
strSQL = "SELECT strDato FROM opgaver"
Set rs = Conn.Execute(strSQL)

'Udskriv dato fra db
strDato = rs("strDato")
Response.Write strDato


Er det måden????
Avatar billede medions Nybegynder
09. januar 2004 - 16:01 #1
Sæt dette op i toppen af dit dokument:

Session.LCID=1030

//>Rune
Avatar billede wilweb Nybegynder
09. januar 2004 - 16:09 #2
Jamen,hvis jeg ikke vil bruge Session.LCID (uanset server sprog!
)

JEg tænker måske på at altid skrive min dato til db i US/UK og så formatere den før Response.Write

Er det dumt?
Avatar billede thesurfer Nybegynder
09. januar 2004 - 16:13 #3
Nej, det er ikke dumt.. du skal bare huske at gøre det :)
Hvis man bruger Session.LCID=1030, så ændre man vel også en masse andre værdier, f.eks. tid, dato, valuta, osv..
Avatar billede wilweb Nybegynder
09. januar 2004 - 16:20 #4
Det vil sige at jeg kan konkludere!

Indsæt dato'en råt!
strDato=date()

og formater den med enten

Session.LCID=1030

eller ved at formatere den på en eller anden måde!
Avatar billede eagleeye Praktikant
09. januar 2004 - 16:46 #5
"Fejlen" skyldes for Access at den bruger US eller UK dato format som er yyyy-mm-dd eller mm-dd-yyyy via SQL. Når man så indsætter en dato i dansk dato format (dd-mm-yyyy), hvor dagen er først så vil Access bytte den rundt på dagen og månede i datoen.

Der er en løsning og der er at bruge dato funktionerne Year, Month og Day til at formatere din dato.

<%
dato = "04-06-2003"
strDato = Year(dato) & "-" & Month(dato) & "-" & Day(dato)
SQL = "INSERT INTO tablenavn (datokol) VALUES (#" & strDato & "#)"
%>
Avatar billede eagleeye Praktikant
09. januar 2004 - 16:52 #6
Når jeg skriver "Fejlen" så det fordi det ikke direkte er en bug i Access for hvis man i Access slår op i hjælpen står ca. det samme ;)
Avatar billede wilweb Nybegynder
09. januar 2004 - 17:04 #7
ÅK eagleeye:>
JEg bruger dit eks. når jeg skriver til db'en, men hvad så når jeg trækker datoen ud fra db'en
er det bare:

Response.write rs("datokol")

Eller er det:

Session.LCID=1030
Response.write rs("datokol")
Avatar billede eagleeye Praktikant
09. januar 2004 - 17:05 #8
Det kommer an på hvilket dato format serveren køre, hvis den ikke køre DK format så kan Session.LCID=1030 bruges til at angive det er DK format.
Avatar billede eagleeye Praktikant
09. januar 2004 - 17:08 #9
Dato funktionerne bruger Session.LCID til afgøre hvordan en dato er formater så hvis man skriver dette:

dato = "04-06-2003"  '4-juni-2004
strDato = Year(dato) & "-" & Month(dato) & "-" & Day(dato)

Og har man en UK server vil den skrive: 2004-04-06  '6 april 2004
Og har man en DK server vil den skrive: 2004-06-04  '4 juni 2004
Avatar billede thesurfer Nybegynder
09. januar 2004 - 17:09 #10
gizom> du bruger bare:

dato = rs("datokol")
strDato = Year(dato) & "-" & Month(dato) & "-" & Day(dato)
response.write strDato

Eller hva'?
Avatar billede wilweb Nybegynder
09. januar 2004 - 17:14 #11
Jeg fisker lidt efter hvordan jeres røde tråd (metode) er når I modtager en dato fra en input form (hvor en dansk bruger typisk vil skrive dd-mm-yyyy)
Skriver i den råt ned i databasen? eller hvad?
Avatar billede thesurfer Nybegynder
09. januar 2004 - 17:16 #12
Jeg plejer ikke at ændre datoen, men det kan være lige meget, hvis du selv formaterer det INDEN at du viser det :)
Avatar billede wilweb Nybegynder
09. januar 2004 - 20:39 #13
gider I ikke lige svare, for jeg bruger lidt af det i alle har svaret!
Avatar billede thesurfer Nybegynder
09. januar 2004 - 20:51 #14
Ingen points til mig..
Avatar billede wilweb Nybegynder
09. januar 2004 - 20:56 #15
joh du.. lidt point til alle for jeg syntes at I alle bidrog til min løsning :>
Avatar billede thesurfer Nybegynder
09. januar 2004 - 20:59 #16
OK.. men vent til alle har lagt et svar :)
Så kan du bruge "Avanceret"-knappen til at fordele pointsne.. :)
Avatar billede wilweb Nybegynder
09. januar 2004 - 21:05 #17
åk
Avatar billede eagleeye Praktikant
09. januar 2004 - 22:50 #18
>>Jeg fisker lidt efter hvordan jeres røde tråd (metode) er når I modtager en dato fra en input form Skriver i den råt ned i databasen? eller hvad?

Jeg bruger det jeg har vist før "04-06-2003" kan jo bare skiftes ud med request.form("dato") og sikre at data formatet på serveren er DK format.
dato = Request.Form("dato")
strDato = Year(dato) & "-" & Month(dato) & "-" & Day(dato)

Så smider jeg datoen formateret i yyyy-mm-dd i databasen. Derfor det vigtig man ved hvilket dato format serveren køre DK/UK/.. fordi outputet fra dato-funktionerne afhænger af datoen formatet.
Avatar billede wilweb Nybegynder
10. januar 2004 - 00:46 #19
Takker for hjælpen
Avatar billede thesurfer Nybegynder
10. januar 2004 - 00:49 #20
Takker for points
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