我正在尝试以下简单的SQL来更新每一行的列 最后两个条件(两个日期)相等的地方。但是没有行受到影响。
如果我省略where
子句,则使用相同的列值更新。
UPDATE VyfjaarOntledings
SET LaasteSuiker = Suiker
WHERE LaasteMonsterDatum = Datum
有什么想法吗?
此致
答案 0 :(得分:1)
由于您没有标记DBMS,假设您使用的是SQL Server ..
转换比较列以确保它具有相同的数据类型以避免错误。
<强>转换强>
UPDATE VyfjaarOntledings
SET LaasteSuiker = Suiker
WHERE CONVERT(DATE, LaasteMonsterDatum) = CONVERT(DATE, Datum)
<强> CAST 强>
UPDATE VyfjaarOntledings
SET LaasteSuiker = Suiker
WHERE CAST(LaasteMonsterDatum AS DATE) = CAST(Datum AS DATE)
答案 1 :(得分:0)
我猜时间部分在LaasteMonsterDatum
和Datum
列中有所不同。
尝试从日期中删除时间部分并更新
UPDATE VyfjaarOntledings
SET LaasteSuiker = Suiker
WHERE cast(LaasteMonsterDatum as date) = cast(Datum as date)
答案 2 :(得分:0)
日期列的格式可能有问题。为安全起见,请始终使用Cast或TO_Date函数来比较日期