Mientras podrías reste la cantidad de milisegundos como se sugiere en los comentarios, eso aún lo dejaría con valores de submilisegundos. Que puede no causa ningún problema, pero es posible que el controlador redondee el valor de submilisegundos a un milisegundo completo. Es más limpio (IMO) evitar tener cualquier valor de subsegundo, de modo que el valor que inserta sea el mismo que el valor que se almacena. Preferiría usar:
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 esa manera, claramente solo tienen valores de año/mes/día/hora/minuto/segundo.
Si se encuentra haciendo esto regularmente, es posible que desee escribir un método de extensión para poder usar:
var truncated = dtNow.TruncateToSecond();