62 votes

Utiliser le type de données de temps de SQL Server dans une application C#.NET?

Comment utilise-t-on le type de données SQL time introduit dans SQL Server 2008 en C#.NET ?

J'ai essayé de le faire fonctionner mais sans succès.

0 votes

Quelle réponse a résolu votre problème? Il y a une coche d'acceptation sur la gauche.

66voto

Simen S Points 2086

Voici un article MSDN qui passe en revue tous les nouveaux types de données Date et Time introduits dans SQL Server 2008 par rapport à ADO.NET. Comme le document le dit : Pour System.Data.DbType.Time vous utiliseriez le type System.TimeSpan du Framework .NET

10voto

Lav Points 812

Je pense que vous pouvez utiliser le type de données TimeSpan pour votre but. Voici un article qui explique l'utilisation du type de données Time dans ADO.NET.

5voto

Michael Sander Points 136

Aussi, même les gens de Microsoft ont tendance à recommander de mapper le type de données sql time sur System.Timestamp je ne recommanderais pas de le faire,

puisque la plage de temps sql est 00:00:00.0000000 - 23:59:59.9999999

tandis que la plage de System.TimeSpan est 10675199.02:48:05.4775808 - 10675199.02:48:05.4775807

ce qui est juste légèrement différent et peut entraîner des erreurs de dépassement d'intervalle désagréables à l'exécution.

2 votes

Que recommandez-vous ?

0 votes

Dépend de quel genre d'environnement vous avez, j'ai tendance à stocker des secondes et même des millisecondes si nécessaire.

2voto

Imran Rizvi Points 2886

Vous pouvez le lire en utilisant DataReader en utilisant quelque chose de similaire à la déclaration suivante .

TimeSpan time = dr.GetTimeSpan(dr.GetOrdinal(“Time7FieldName”));

1voto

Jonathan Stanton Points 1692

Comment accédez-vous aux données? En utilisant Entity Framework, StoredProcedures, etc.
Si vous devez transmettre une représentation de chaîne de la date, assurez-vous de le faire dans le format "aaaa-mm-jj hh:mm:ss", sinon vous risquez la confusion entre dd/mm/aaaa et mm/dd/aaaa. Si vous utilisez Entity Framework ou DataSets, vous devriez simplement passer en paramètre une instance de DataTime, par exemple DateTime.Now

0 votes

Je suis en train d'utiliser Castle Active Record pour accéder aux données.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X