webForumDet fria alternativet

Lagrar fel datum i databas

ASP

11 svar · 424 visningar · startad av paraxe

Medlem sedan apr. 2004298 inlägg
Frågan#1

Hej!

Har problem med att lagra datum i en Access databas.

I SQL-satsen har jag Date() när jag sparar ett inlägg.

Felet är att datumet jag försöker lagra (2004-09-15) blir 1905-06-02.

Har en fil där jag kollar att webserverns klocka går rätt:

<% Session.LCID = 1053 %>
<body>
<p><% Response.Write(Date()) %></p>
<p><% Response.Write(Now()) %></p>
</body>

Resultatet:

2004-09-15
2004-09-15 11:10:57

Filen för input i databasen har även den Session.LCID

<% Session.LCID = 1053 %>
Samt :
strSql1 = "INSERT INTO ... fltDate,...)VALUES(..',[blue] "&Date()&"[/blue] , ..."')"

Hittade inget forum-inlägg om detta problem.

Någon?

Mvh

Pär

Medlem sedan dec. 200012 464 inlägg
#2

Du lagrar inte ett datum utan talet 1980 eftersom din insert-sats egentligen ser ut så här.

INSERT INTO ... fltDate,...)VALUES(..', 2004-09-15 , ..."')"

använd de datumfunktioner som finns i databasen

strSql1 = "INSERT INTO ... fltDate,...)VALUES(..', Date(), ..."')"

t.ex. om det är en access-databas.

Medlem sedan maj 200010 687 inlägg
#3

Har du provat att skriva så här..?

<% Session.LCID = 1053 %>
Samt :
strSql1 = "INSERT INTO ... fltDate,...)VALUES(..', Date(), ..."')"
Medlem sedan juli 20003 825 inlägg
#4
Nej du ska ha brädgårdar runt datum i Access!
Du har rätt kod från början:

strSql1 = "INSERT INTO ... fltDate,...)VALUES(..', "&Date()&" , ..."')"

strSql1 = "INSERT INTO ... fltDate,...)VALUES(..', [b]#[/b]"&Date()&"[b]#[/b] , ..."')"

Brädgårdarna runt datum är en sån sak som skiljer mellan databaserna MS SQL, Access och mySQL.

Medlem sedan apr. 2004298 inlägg
#5

Tackar!

Mvh

Pär

Medlem sedan feb. 2003549 inlägg
#6

Varför inte?

datum = Now()

Och sen bara hämta in datum i SQL satsen

Medlem sedan apr. 2004298 inlägg
#7

Meng skrev:

Varför inte?

datum = Now()

Och sen bara hämta in datum i SQL satsen

Din lösning skulle ge en prestandaförlust på 0,000001541 nanosekunder. :e

Mvh

Pär

Medlem sedan juni 200032 967 inlägg
#8

Om du jagar nanosekunder bör du strunta i konkateneringen, och använda Date() direkt i SQL-frågan. Smartare, snyggare, och mindre onödiga konkateneringar.

Medlem sedan apr. 2004298 inlägg
#9

@anders, du menar?

LarsG skrev:

använd de datumfunktioner som finns i databasen

strSql1 = "INSERT INTO ... fltDate,...)VALUES(..', Date(), ..."')"

Mvh

Pär

Medlem sedan juni 200032 967 inlägg
#10

Precis så som LarsG skriver ja.

mvh

Medlem sedan maj 200010 687 inlägg
#11

Så som jag skrev också. :p

Medlem sedan juni 200032 967 inlägg
#12

Precis så som Erik Juhlin skriver också ja. ;)

Mvh

264 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)