MySQL触发器在插入或更新之前将日期值更改为weekstart

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL触发器在插入或更新之前将日期值更改为weekstart相关的知识,希望对你有一定的参考价值。

我有一个日期列的表,应该始终是每个条目的一周的第一天。

有没有办法可以创建一个触发器,将输入值更改为相应的开始日期?

例如,如果我有:

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)

这是假设您的计算是正确的。

以上是关于MySQL触发器在插入或更新之前将日期值更改为weekstart的主要内容,如果未能解决你的问题,请参考以下文章

将 tinyint 默认值更改为 1 mysql

将 Python DataFrame 中的值更改为二进制标志(For-Loop 问题)

MySQL触发器将日期插入具有唯一匹配ID的行

axios 请求多选无法将更新形式中的值更改为 PUT 方法;反应.js

如何使用 HIVE 以其他格式更改或修改日期列值

Postgres 创建触发器函数以在允许插入之前将值从一列复制到另一列