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



我有一个表,其中包含默认值为 null 的列 DateTime 数据类型。

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

我的代码如下

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;

最新更新