在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中不存在)。
答案 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)
返回当前的数据库系统 时间戳作为没有的日期时间值 数据库时区偏移量。这个 价值来自经营 计算机系统 SQL Server的实例正在运行。
UPDATE table SET date = GETDATE()