2010-12-20 95 views
57

在VB.net代码中,我使用SQL参数创建请求。它将DateTime参数设置为值DateTime.Now,我的请求将是什么样子?将DateTime数据库字段设置为“Now”

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

UPDATE table SET date = GETDATE(); 

在我敢肯定,每个记录将被设置为确切的同时尚属首例。在第二种情况下,它取决于DBMS如何处理请求。这引出了第二个问题:在用NOW()更新大型表时,SQL Server是否设置了相同的日期和时间?

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

回答

111

在SQL你需要使用GETDATE()

UPDATE table SET date = GETDATE(); 

没有NOW()功能。


要回答你的问题:

在一张大桌子,因为该功能对每行评估,你最终会为更新的领域得到不同的值。

所以,如果您的要求是将其全部设置为相同的日期,我会做这样的事情(未经测试):

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

UPDATE table SET date = @currDate; 
+0

糟糕是NOW()是Mysql,对不起。但问题依然存在。 – 2010-12-20 09:38:42

+0

@Thibault Witzig - 我在我的更新中回答了它:) – Oded 2010-12-20 09:39:41

+0

好的谢谢。所以我需要确保把我的请求中的实际日期(来自代码)dans not GETDATE()你知道它将SQLparameter设置为DateTime.Now将执行此操作或如果我应该首先将日期转换为字符串,然后将它添加到请求中? – 2010-12-20 09:41:49

6

使用GETDATE()

返回当前数据库系统 时间戳作为日期时间值,而不是 数据库时区偏移量。此值 值来源于运行SQL Server实例的计算机的运行 系统。

UPDATE table SET date = GETDATE() 
16

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

+2

'CURRENT_TIMESTAMP'实际上是SQL标准,所以有些人可能会认为这是首选语法。 – 2017-09-08 17:09:16

相关问题