将Datetime null值更新为null

时间:2015-01-21 14:55:31

标签: sql sql-server sql-server-2008

我有一个带有DateTime数据类型列的表,默认值为null。

我正在使用以下代码将Datetime更新为正确的日期时间,但它无效。

我的代码如下

declare @SomeDate datetime = GETDATE()

update Testing set SomeDate = @SomeDate  where  SomeDate  <> @SomeDate 

4 个答案:

答案 0 :(得分:1)

尝试以下代码

declare @SomeDate datetime = GETDATE()

update Testingset 
set SomeDate = @SomeDate  
where  SomeDate  is null
or SomeDate  <> @SomeDate 

答案 1 :(得分:1)

试试这个:

UPDATE Testingset
   SET SomeDate = @SomeDate
 WHERE SomeDate IS NULL
    OR SomeDate != @SomeDate

答案 2 :(得分:1)

我猜你的代码没有做你想要的。你的代码应该是:

declare @SomeDate datetime = GETDATE();

update Testingset
    set SomeDate = @SomeDate 
    where SomeDate is null;

使用变量没有明显的理由。你也可以这样做:

update Testingset
    set SomeDate = getdate()
    where SomeDate is null;

编辑:

根据您的评论,您似乎想要:

declare @SomeDate datetime = GETDATE();

update Testingset
    set SomeDate = @SomeDate 
    where SomeDate is null or SomeDate <> @SomeDate;

答案 3 :(得分:0)

我相信以下内容可以实现您的目标:

UPDATE Testing
   SET SomeDate = getdate()
 WHERE SomeDate IS NULL
    OR SomeDate <> getdate();

您最好使用ANSI标准CURRENT_TIMESTAMP而不是getdate()

UPDATE Testing
   SET SomeDate = CURRENT_TIMESTAMP
 WHERE SomeDate IS NULL
    OR SomeDate <> CURRENT_TIMESTAMP;