我有一个带有DateTime数据类型列的表,默认值为null。
我正在使用以下代码将Datetime更新为正确的日期时间,但它无效。
我的代码如下
declare @SomeDate datetime = GETDATE()
update Testing set SomeDate = @SomeDate where SomeDate <> @SomeDate
答案 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;