我有一个带有日期列的表格,该列应始终是每个条目的一周的第一天。
有没有办法创建一个触发器,将输入值更改为相应的开始日期?
例如,如果我有:
insert into `Customer`.`Orders`
(`week`,`name`,`mon`,`tue`,`wed`,`thu`,`fri`)
values
('2018-02-27','John','12','14','0','3','44');
我可以以某种方式让触发器获取该日期值并将其替换为周开始吗?我能够通过以下方式获得特定日期的一周开始:
SELECT DATE_SUB('2018-02-27', INTERVAL DAYOFWEEK('2018-02-27')-1 DAY);
任何意见不胜感激!
您需要查看 BEFORE INSERT 和 BEFORE UPDATE 触发器; 并在他们的身体里放这样的东西。
SET NEW.`week` = DATE_SUB(NEW.`week`, INTERVAL DAYOFWEEK(NEW.`week`)-1 DAY)
这是假设您的计算是正确的。