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();