Enquanto você poderia subtraia o número de milissegundos como sugerido nos comentários, que ainda deixaria você com valores de submilissegundos. Que pode não causa um problema, mas é possível que o driver arredonde o valor de submilissegundos para um milissegundo inteiro. É mais limpo (IMO) evitar ter qualquer valor de subsegundo, para que o valor inserido seja o mesmo que o valor que é armazenado. Eu prefiro 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
Dessa forma, claramente somente tem valores de ano/mês/dia/hora/minuto/segundo.
Se você estiver fazendo isso regularmente, talvez queira escrever um método de extensão para poder usar:
var truncated = dtNow.TruncateToSecond();