Take the 2-minute tour ×

hi Is there any difference between DateTime in c# and DateTime in SQL server?

share|improve this question
add comment

3 Answers

up vote 15 down vote accepted

Precision and range (so, everything important ;-p)

From MSDN:

.NET System.DateTime



Transact SQL datetime

Date Range: January 1, 1753, through December 31, 9999

Accuracy: Rounded to increments of .000, .003, or .007 seconds

share|improve this answer
excellent! I wanna to write a function in c# which gets a parameter of type string and convert it to datetime . I wanna to savethe return value of the function into DB. The function should take care of an empty string and in this case it should return null. But null can not be inserted. What 's wrong? –  odiseh Jul 25 '09 at 9:13
Probably simply that you need to use DBNull.Value in .NET code to represent database null. –  Marc Gravell Jul 25 '09 at 9:25
There's also the time zone aspect - even though DateTime doesn't have an associated time zone, it can know whether it's "local" or UTC. –  Jon Skeet Jul 25 '09 at 16:59
@Mark,@Jon : thank you very much –  odiseh Jul 26 '09 at 6:58
add comment

You can also use datetime2 of SQL Server 2008. The precision there is 100ns as well. In fact, it was introduced to match the .NET DateTime precision.

datetime2 (Transact-SQL)

share|improve this answer
add comment


The C# equivalent of the SQL datetime type is SqlDateTime

So, define the SQL call (stored procs with parameter collection of course) to use SQLDateTime. On advantage is you can trap any overflow or out of range error building the command rather than at execution time from the database engine.

share|improve this answer
add comment

Your Answer


