Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Inserisci datetime in SQL senza millisecondi usando un parametro

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