Infinity DateTime à SqlDateTime

J'ai utilisé des instructions SQL dans SQL Server Management Studio, où j'ai entré comme validité infinity le datetime suivant {ts '9999-12-31 23:59:59'}, mais quand j'essaye de faire ceci via SqlConnection & SqlCommand, le server Réponse, que cette conversion datetime est hors de scope … Y at-il un moyen d'get ceci sans erreur?

Merci d'avance

Je pense que vous devriez utiliser SqlDateTime.MaxValue pour le faire.

Source: https://msdn.microsoft.com/fr-fr/library/system.data.sqltypes.sqldatetime.maxvalue(v=vs.110).aspx

Une autre façon de le faire serait de déclarer cette variable dans le SQL comme facultatif et d'y assigner le datetime. De cette façon, vous n'avez pas besoin de vous soucier des changements de structure ou quoi que ce soit.

 ALTER PROCEDURE [dbo].[YourProcedure] @Date datetime = '9999-12-31 23:59:59'; 

De cette façon, chaque fois que vous ne passez pas réellement la valeur, ce sera comme vous le souhaitez sans problèmes.

La valeur maximale pour une valeur SQL Server DateTime est 9999-12-31 23: 59: 59.997 – notez qu'il se termine par un 7!

Ce code fonctionne bien;

 declare @MaxDateTime datetime; set @MaxDateTime = '9999-12-31 23:59:59.997' 

Ce code ne le fait pas;

 declare @MaxDateTime datetime; set @MaxDateTime = '9999-12-31 23:59:59.999' 

Si vous vous requestz pourquoi la valeur maximale se termine par 7, c'est en raison de la façon dont SQL Server stocke les valeurs DateTime en interne.

J'espère que cela t'aides,

Rhys