views:

275

answers:

2

The environment I am using is C# 3.5, ado.net, sqlserver 2005.

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?

+3  A: 

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.

Scott Ivey
A: 

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.

http://msdn.microsoft.com/en-us/library/ms182418.aspx

Shiraz Bhaiji