2015-12-18 3 views
0

Я пытаюсь выполнить следующий простой SQL, чтобы обновить столбец для каждой строки , где два последних условия (обе даты) равны. Хотя строки не затронуты.Ошибка простого обновления

Если я опускаю предложение where, он обновляется с тем же значением столбца.

UPDATE VyfjaarOntledings 
SET LaasteSuiker = Suiker 
WHERE LaasteMonsterDatum = Datum 

Любые идеи?

С уважением

+1

пожалуйста добавьте тег RDBMS вы используете – brenners1302

ответ

0

Я думаю, время часть отличается LaasteMonsterDatum и Datum колонке.

Попробуйте удалить часть времени от даты и обновление

UPDATE VyfjaarOntledings 
SET LaasteSuiker = Suiker 
WHERE cast(LaasteMonsterDatum as date) = cast(Datum as date) 
0

Формата даты столбца может быть проблемой. Для безопасности всегда используйте Cast или to_date функции для сравнения дат

1

Поскольку у вас нет СУБД тегов, при условии, что вы используете SQL Server ..

Преобразовать столбец сравнений, чтобы убедиться, что он имеет тот же тип данных чтобы избежать ошибок.

CONVERT

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) 
+0

Спасибо you.I изменили код для преобразования столбцов даты, но до сих пор никаких результатов , Я хочу использовать дату в LaastemonsterDatum, чтобы найти suiker в строке с той же датой в столбце datum, что и Laastemonsterdatum. Кстати, я использую SQL-сервер. – Gideon