将日期时间空值更新为非空

Update Datetime null value to not null

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

我正在使用以下代码将日期时间更新为正确的日期时间,但它不起作用。

我的代码如下

declare @SomeDate datetime = GETDATE()

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

试试下面的代码

declare @SomeDate datetime = GETDATE()

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

试试这个:

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

我猜您的代码没有按照您的要求执行。你的代码应该是:

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;

我相信以下内容可以完成您想要做的事情:

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;