我最近安裝了MySQL 5.7。日期列出現奇怪的情況。MySQL 5.7日期字段問題
如果我在WHERE部分執行使用該領域中的SELECT查詢,我有一個結果,但是當我使用相同的WHERE條件更新行,我得到一個日期格式無效錯誤消息。
這裏是SELECT一句:
SELECT *
FROM
FDpoCargTran
WHERE FDpoCargTran.Banco = '001'
AND (FDpoCargTran.Conciliacion = '' OR FDpoCargTran.Conciliacion IS NULL)
AND FDpoCargTran.Fecha = '2016-09-27'
這句話返回2行的結果集,這是確定。
現在,這裏的UPDATE一句:
UPDATE
FDpoCargTran
SET
Edo = 'C'
WHERE FDpoCargTran.Banco = '001'
AND (FDpoCargTran.Conciliacion = '' OR FDpoCargTran.Conciliacion IS NULL)
AND FDpoCargTran.Fecha = '2016-09-27'
AND Deposito = 1041
我收到此錯誤信息:
Data truncation: Incorrect date value: '' for column 'Conciliacion'
的Conciliacion列被定義爲:
`Conciliacion` date DEFAULT NULL,
如果我刪除Conciliacion =''條件,一切工作正常。
爲什麼空字符串無法在UPDATE語句中評估列而不在SELECT中?
請一個想法!
有沒有數據表中的Conciliacion ='''在你的表中?我看到定義爲'date default null'的列,這意味着你可以有一個有效的日期或null和*不是空字符串*。 –
不,只有,日期值或null。 – renevillegasr