我最近安装了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