将日期时间空值更新为非空
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;
我有一个 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;