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

时间:2010-12-20 09:32:53

标签: sql-server vb.net

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

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

UPDATE table SET date = GETDATE();

在第一种情况下,我确信每条记录都将设置为完全相同的时间。在第二种情况下,它取决于DBMS如何处理请求。这引出了第二个问题:SQL Server在使用NOW()更新大表时是否设置了相同的日期和时间?

编辑:通过GETDATE()替换了NOW()(在SQL Server中不存在)。

3 个答案:

答案 0 :(得分:152)

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

UPDATE table SET date = GETDATE();

没有NOW()功能。


回答你的问题:

在一个大表中,由于为每一行计算了函数,因此最终会得到更新字段的不同值。

所以,如果你的要求是将它设置为同一个日期,我会做这样的事情(未经测试):

DECLARE @currDate DATETIME;
SET @currDate = GETDATE();

UPDATE table SET date = @currDate;

答案 1 :(得分:19)

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

答案 2 :(得分:7)

使用GETDATE()

  

返回当前的数据库系统   时间戳作为没有的日期时间值   数据库时区偏移量。这个   价值来自经营   计算机系统   SQL Server的实例正在运行。

UPDATE table SET date = GETDATE()