Millisecondi tagliati Datetime

mercoledì 28 ottobre 2009 - 18.38

maolimix Profilo | Newbie

Ciao a tutti,
ho un problema che mi sta facendo impazzire da questa mattina. Vi spiego...
Io prelevo una colonna di tipo Datetime da una tabella sita in Sql Server 2005.Premetto che sto programmando con VS.net 2003 in c#.
Per prelevarla ho provato 3 metodi:

1) metto la colonna in una tabella di un dataset. Ho notato che una volta istanziata una Datarow e riempita con una delle righe della tabella,quest ultimo è convertito in un System.Datetime in automatico.
Il simpatico dettaglio è che i Millisecondi sono settati a zero(nella tabella , invece , erano impostati a 807);
Ho allora pensato ad un problema di conversione ed allora ho provato così dopo aver impostato una connessione e sqlcommand:

2) SqlDataReader reader = command.ExecuteReader();
while(reader.Read() == true)
{
SqlDatetime p=reader.GetDateTime(0);
}
Ancora nulla i millisecondi vengono beatamente tagliati

Ho allora pensato ad un problema di conversione da SqlDatetime (nella tabella sql) a Datetime per cui ho corretto così:
3) SqlDataReader reader = command.ExecuteReader();
while(reader.Read() == true)
{
SqlDatetime p=reader.GetSqlDateTime(0);
}
Qui i millisecondi vengono valorizzati , ma ,assurdo , invece di memorizzare 29-09-2009 16:33:03.807 viene memorizzato questo nella variabile p :29-09-2009 16:32:35:307.
Qualcuno è mai incappato in questo problema? Ho anche pensato a modificare la query con un cast a string ma devo trovare il modo opportuno perchè cmq i mesi li scrive a lettere e non è facilmente gestibile
Grazie a tutti

micto27 Profilo | Senior Member

Prova a vedere se ti possono essere d'aiuto
questi articoli.

http://seesharper.wordpress.com/2008/07/08/sql-server-datetime-vs-net-datetime-battle-of-accuracy/

http://www.sql-server-performance.com/articles/dev/advanced_date_datetime_handling_p1.aspx

Ciao, Michele

maolimix Profilo | Newbie

Ciao,
alla fine ho risolto con un cast diretto del tipo (datetime)...e funziona tutto correttamente.Cmq articoli molto interessanti...
Ciao
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5