Mentre potresti sottrai il numero di millisecondi come suggerito nei commenti, che ti lascerebbero comunque con valori inferiori al millisecondo. Ciò può non causa problemi, ma è possibile che il driver arrotondi il valore inferiore al millisecondo fino a un intero millisecondo. È più pulito (IMO) evitare di avere alcun valore di sottosecondo, in modo che il valore inserito sia lo stesso del valore che viene memorizzato. Preferirei usare:
var truncated = new DateTime(dtNow.Year, dtNow.Month, dtNow.Day,
dtNow.Hour, dtNow.Minute, dtNow.Second);
// Use truncated as the parameter in your command
In questo modo sarà chiaramente solo hanno i valori anno/mese/giorno/ora/minuti/secondi.
Se ti ritrovi a farlo regolarmente, potresti voler scrivere un metodo di estensione in modo da poter utilizzare:
var truncated = dtNow.TruncateToSecond();