Existe alguma diferença entre DateTime em c # e DateTime no servidor SQL?

Existe alguma diferença entre DateTime em c # e DateTime no servidor SQL?

Precisão e alcance (então, tudo importante ;-p)

Do MSDN:

.NET System.DateTime

O tipo de valor DateTime representa datas e horas com valores que variam de 12:00:00 meia-noite, 1 de janeiro, 0001 Anno Domini (Common Era) até 11:59:59, 31 de dezembro de 9999 dC (CE)

Os valores de tempo são medidos em unidades de 100 nanossegundos chamados carrapatos e uma data específica é o número de carrapatos desde a meia-noite de 1 de janeiro de 0001 dC (CE) na calendária GregorianCalendar

Transact SQL datetime

Período: 1 de janeiro de 1753 a 31 de dezembro de 9999

Precisão: arredondado para incrementos de 0,000, 0,003 ou 0,007 segundos

Você também pode usar o datetime2 do SQL Server 2008. A precisão também é de 100 ns. Na verdade, ele foi introduzido para corresponder à precisão do .NET DateTime.

datetime2 (Transact-SQL)

Sim.

O equivalente em C # do tipo de data e hora do SQL é SqlDateTime

Então, defina a chamada SQL (procs armazenados com a coleção de parâmetros, é claro) para usar SQLDateTime. A vantagem é que você pode capturar qualquer erro de estouro ou fora do intervalo ao criar o comando em vez de no tempo de execução a partir do mecanismo do database.