webForumDet fria alternativet

Fel värde på Date

.NET

5 svar · 277 visningar · startad av Mc Fetto

Medlem sedan nov. 20022 355 inlägg
Frågan#1

Har en kolumn i mySql-databas som är av typen Date "yyyy-mm-dd", när jag sedan får ut det i en sträng i applikationen ser den ut såhär: "yyyy-mm-dd tt:mm:ss".
Hur kommer jag runt detta?
Möjligen att detta är fel forum, vet ju inte vart problemet ligger! :q
edit: märkte att jag kunde använda mig av

DateTime dt = DateTime.Parse(item.SubItems[1].Text);

Men då resultatet kommer ifrån en datatable som läggs in i en listView så måste jag isg gå igenom alla datum eller parsa varje gång man ska använda ett värde. Hoppas det finns bättre lösningar! :)

Medlem sedan nov. 20022 355 inlägg
#2

Blir lite missar när man tar upp gamla grejer.. datatable loopas igenom när jag lägger den i listview:n. Där flyttade jag koden i första posten i tråden..
Men åter till problemet (som är löst ifs), känns lite lustigt att .NET lägger till tim,min och sec; hur kommer detta sig?

Medlem sedan sep. 20011 914 inlägg
#3

Date = Datum
Time = Tid
DateTime = DatumTid

Vid Parse så använder DataTime sig invändigt av en class som heter DateTimeResult och när en instans av den skapas så sätts dess properites Year, Month, Day, Hour, Minute och Second till 0. Och om inget värde har getts för tiden i Parse(string) så är det default värderna som gäller. Alltså 00:00:00.

Medlem sedan nov. 20022 355 inlägg
#4

Så om .NET tar emot ett värde av typen Date från datakällan så blir den per default DateTime?

Medlem sedan sep. 20011 914 inlägg
#5

Om du hämtar det från en datareader via indexer så här då blir det fel.

DateTime dt = dr["date"];

Detta eftersom indexerns get invändigt kallar på GetValue som returnerar ett object.

return this.GetValue(this.GetOrdinal(name));
Medlem sedan nov. 20022 355 inlägg
#6

Tack, Dino!

252 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)