Does SqlDbType.DateTime not store seconds?
-
21-08-2019 - |
Question
using System.Data;
using System.Data.SqlClient;
I am using a SqlCommand cmd.Parameters
of SqlDbType.DateTime
to create a record in the database.
Seconds are not being stored in the database. The field in the db is of type datetime.
Do I need to do something special to save seconds, or does SqlDbType.DateTime
not do that?
Solution
SqlDbType.DateTime
maps to SQL's DATETIME
datatype, which is accurate to 3.33 milliseconds. It sounds like you may be putting your values into a SMALLDATETIME
field in SQL server, which is only accurate to the minute. SqlDbType.DateTime
parameter would be the correct choice for use with both DATETIME
and SMALLDATETIME
.
OTHER TIPS
SQL Server DateTime stores time with millisecond accuracy (not quite right it rounds to .003 .007 etc)
Smalldatetime, however, stores dates such that the seconds are always :00. You have probably used smalldatetime.