将DateTime数据库字段设置为“现在”

在VB.net代码中,我使用SQL参数创build请求。 它将DateTime参数设置为值DateTime.Now,我的请求会是什么样子?

UPDATE table SET date = "2010/12/20 10:25:00"; 

要么

 UPDATE table SET date = GETDATE(); 

在第一种情况下,我确信每个logging都将被设置为完全相同的时间。 第二种情况取决于DBMS如何处理请求。 这导致我到第二个问题:当用NOW()更新大型表时,SQL Server是否设置相同的date和时间?

编辑:通过GETDATE()replaceNOW()(它不存在于SQL Server中)。

在SQL中,您需要使用GETDATE()

 UPDATE table SET date = GETDATE(); 

没有NOW()函数。


回答你的问题:

在一个大表中,由于函数是针对每一行计算的,所以最终会得到不同的更新字段值。

所以,如果你的要求是把它全部设置为相同的date,我会做这样的事情(未经testing):

 DECLARE @currDate DATETIME; SET @currDate = GETDATE(); UPDATE table SET date = @currDate; 

GETDATE()的替代方法是CURRENT_TIMESTAMP。 是完全一样的东西。

使用GETDATE()

将当前数据库系统时间戳记作为不带数据库时区偏移量的date时间值返回。 此值是从运行SQL Server实例的计算机的操作系统派生而来的。

 UPDATE table SET date = GETDATE()