Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Insérer datetime dans SQL sans milliseconde à l'aide d'un paramètre

Alors que vous pouviez soustrayez le nombre de millisecondes comme suggéré dans les commentaires, cela vous laisserait toujours avec des valeurs inférieures à la milliseconde. Cela peut ne pose pas de problème, mais il est possible que le pilote arrondisse la valeur inférieure à la milliseconde jusqu'à une milliseconde entière. Il est plus propre (IMO) d'éviter d'avoir une valeur inférieure à la seconde, de sorte que la valeur que vous insérez soit la même que la valeur qui est stockée. Je préfère utiliser :

var truncated = new DateTime(dtNow.Year, dtNow.Month, dtNow.Day,
                             dtNow.Hour, dtNow.Minute, dtNow.Second);
// Use truncated as the parameter in your command

De cette façon, il sera clairement seulement avoir des valeurs année/mois/jour/heure/minute/seconde.

Si vous vous retrouvez à le faire régulièrement, vous voudrez peut-être écrire une méthode d'extension afin que vous puissiez utiliser :

var truncated = dtNow.TruncateToSecond();