使用SqlCommand插入服务器日期时间

Gar*_*nes 2 .net sql sql-server ado.net

我有一个SqlCommand,它使用SqlParameter将日期时间插入到列中.目前我使用DateTime.Now作为此参数的值.

我相信这会在用户的PC上添加日期时间,这是不一致的.

如何更改此设置以便插入数据库服务器的日期时间?

编辑:

我应该说清楚这只是插入

小智 6

不要传递当前日期的参数; 让SQL Server生成它.

执行你所描述的SQL GETDATE()虽然你可能想考虑使用GETUTCDATE(),因为它在时区变化方面表现更好(并且移动服务器!)

有关详细信息,请参阅MSDN.


mar*_*c_s 5

这是INSERT的严格要求吗?或者更新?

如果仅用于INSERT,则可以在SQL Server端的DATETIME列上声明DEFAULT约束,然后不从客户端插入值 - 因此使用服务器的默认值.

在SQL中:

 ALTER TABLE YourTable 
   ADD CONSTRAINT DF_YourTable_YourColumn
     DEFAULT (GETDATE()) FOR YourColumn
Run Code Online (Sandbox Code Playgroud)

然后在你的SQL命令中,不要提及"YourColumn"并且不提供它的值 - 服务器将使用它getdate()来获取服务器上的当前日期/时间.