DATEDIFF在INSERT触发器之前返回NULL

时间:2018-07-13 09:49:20

标签: mysql database-trigger

我创建了插入前触发器。我想计算总天数。我有两列 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。 为什么会这样?

1 个答案:

答案 0 :(得分:1)

您正在将字符串传递给DATEDIFFDATEDIFF将尝试将字符串'new.leave_from''new.leave_to'解析为日期,这将失败并因此返回NULL

摆脱',它应该可以正常工作:DATEDIFF(new.leave_from,new.leave_to)