webForumDet fria alternativet

Datumet förkortas!

ASP

16 svar · 362 visningar · startad av paddan

Medlem sedan dec. 2002299 inlägg
Frågan#1

Jag har problem med datumet.
Jag har en textruta i ett formulär , där skriver man in tex:
2004-03-03 12:00:00

men det sparas som 2004-3-3 12:00:00
Men jag vil inte ha det så för då blir det problem när jag ska läsa ut det...
eller är det när jags ka läsa ut det jag ska ändra..
några förslag:

Koden jag sparar med är:

If Request.Form("datum") <> "" Then
RecSet("datum") = Request.Form("datum")
End If

Alltså...att spara i databsen är inget problem men hur löser jag det där med datumet som sparas lite fel.

MVh Martin

Medlem sedan juni 200032 967 inlägg
#2

Om fältet datum i tabellen är av datumtyp bör du inte ha något problem. Är det det?

Medlem sedan dec. 2002299 inlägg
#3

Ja visst!
Det är det!

Medlem sedan dec. 2002299 inlägg
#4

datetime...

Medlem sedan juni 200032 967 inlägg
#5

Du har provat att använda CDate() vid utskriften?

Medlem sedan dec. 2002299 inlägg
#6

jag fattar inget i heller!

Medlem sedan juli 20011 129 inlägg
#7

Jag kan bara tänka mig att det är en engelsk variant och det sparas annorlunda där. Ett annat sätt är att spara det som text, då den inte formaterar lite som den vill. Men då kanske hela systemet ballar ur?

Är det access du kör?

Medlem sedan dec. 2002299 inlägg
#8

nix...mysql
Jo...jag kan prova det...har lite att ställa om då bara!

Medlem sedan juni 200032 967 inlägg
#9

Koplik skrev:

Ett annat sätt är att spara det som text, då den inte formaterar lite som den vill.

Det må vara ett annat sätt, men det är fel sätt. Datum skall lagras i fält av datumtyp. Basta!

Edit: hur gick det med CDate-förslaget?

Medlem sedan dec. 2002299 inlägg
#10

jepp...men hur ska jag lösa det då?
Koden för at skriva ut datan är:

datumutskriv = aret &"-"& manad &"-"& dag

Där hämtar jag ifrån queststring..

Sen i sql satsen är det:

Visa = "SELECT * FROM Aktivitet WHERE DATE_FORMAT(datum,'%Y-%m-%d') = '"& datumutskriv  &"'"

Det funkar alldeles utmärkt så länge datumet är tex 2004-12-12 för då måste den spara det men är det en nolla så försvinner den!

Medlem sedan juni 200032 967 inlägg
#11

Var får du aret, manad och dag ifrån? Om det är tal så är det ju inte så konstigt att nollorna kastas bort, eftersom det inte finns några tal som börjar på noll.

Där hämtar jag ifrån queststring..

Jag antar att du menar querystring, men vad menar du att du hämtar med querystring? Jag ser inget sådant i koden du visar?

Medlem sedan dec. 2002299 inlägg
#12

Så här ser koden ut som hämtar ett datum som jag skickat med querystring:
Det skriv ut som tex 2004-12-12... ingen tid alltså..

aret = Request.Querystring("y")

if Request.Querystring("m") < 10 then
manad = "0"& Request.Querystring("m")
else
manad = Request.Querystring("m")
end if 

if Request.Querystring("d") < 10 then
dag = "0"& Request.Querystring("d")
else
dag = Request.Querystring("d")
end if 

datumutskriv = aret &"-"& manad &"-"& dag

Problemet är jo när jag sparar det så blir det 2003-3-3 istället för 2003-03-03

mvh martin

Medlem sedan juni 200032 967 inlägg
#13

Du sa ju att man fyllde i 2004-03-03 12:00:00 i en textruta, då förstår jag inte alls varför du gör så där.

edit: hmm, det där är alltså koden du använder när du ska visa informationen. Jag trodde problemet var att saker och ting sparades fel?

Edit 2: Hur gick det med CDate()?

Medlem sedan dec. 2002299 inlägg
#14

jepp.-....
<input class="nyhetsruta" type="text" name="datum">

Det hela är en kalender, man väljer ett datum, länken där ifrån ser tex ut så här:
http://www.cl98ic.se/default.asp?page=12&d=27&m=1&y=2005

Och genom at bestämma att dem aktiviteterna den dagen han har valt så hämtar jag det datumet man valt genom querystring och kollar om det finns någon aktivitet i databasen med det datumet.
Problemet är jo nu att eftersom det sparar som tex 2003-3-3 istället för 2003-03-03 så hittar den jo inget eftersom man jämnför jo med 2003-03-03.(om man har valt det datumet.)

Medlem sedan dec. 2002299 inlägg
#15

Vet inte riktigt hur Cdatefungerar...
Hur ska jag använda det???
om jag vill ta ut datumet från den länk jag skickar med och spara det i en variabel..? hur använder jag Cdate() då??

Medlem sedan juni 200032 967 inlägg
#16

Börja med att använda CDate() på datumutskriv innan du frågar databasen:

datumutskriv = CDate(datumutskriv)

Edit:
Det är alltså inte din lagring det är fel på, utan jag skulle gissa på att det beror på att denna kod är fel:

aret = Request.Querystring("y")

if Request.Querystring("m") < 10 then
manad = "0"& Request.Querystring("m")
else
manad = Request.Querystring("m")
end if 

if Request.Querystring("d") < 10 then
dag = "0"& Request.Querystring("d")
else
dag = Request.Querystring("d")
end if 

datumutskriv = aret &"-"& manad &"-"& dag

Byt till:

datumutskriv = Request.Querystring("y") & "-" & right("0" & request.querystring("m"), 2) & "-" & right("0" & request.querystring("d"), 2)

Lite kortare?

mvh

Medlem sedan dec. 2002299 inlägg
#17

Hej..jag tackar så mycket för hjälpen...det löste sig nu...
Fick ämdra lite i koden så funkade det!

MVh Martin!

270 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)