我创建了插入前触发器。我想计算总天数。我有两列 leave_from 和 leave_to 。现在,我想减去这两列以设置 total_days 。
DELIMITER ;;
CREATE TRIGGER `leave_bi` BEFORE INSERT ON `leave` FOR EACH ROW
begin
set new.total_days=(select DATEDIFF('new.leave_from','new.leave_to'));
end;;
将数据插入表中时,total_days
即将到来NULL
。
为什么会这样?
答案 0 :(得分:1)
您正在将字符串传递给DATEDIFF
。 DATEDIFF
将尝试将字符串'new.leave_from'
和'new.leave_to'
解析为日期,这将失败并因此返回NULL
。
摆脱'
,它应该可以正常工作:DATEDIFF(new.leave_from,new.leave_to)