在 MySQL 中使用带有日期的连接字符串创建触发器
Posted
技术标签:
【中文标题】在 MySQL 中使用带有日期的连接字符串创建触发器【英文标题】:Creating Trigger with a concatenated string with a date in MySQL 【发布时间】:2021-09-29 04:31:31 【问题描述】:我正在尝试弄清楚如何使用包含日期的串联字符串创建触发器插入。
我正在创建的触发器是在 tbl_employee 上创建的。每次我将新员工插入表中时,我希望它使用以下信息更新另一个名为 tbl_employee_audit 的表。
id | audit_data |
---|---|
1 | New employee with ID = 1221 was added on Sep 21, 2016 |
这是我创建触发器的代码
CREATE TRIGGER adding_employee
AFTER INSERT
ON tbl_employee FOR EACH ROW
INSERT INTO tbl_employee_audit(ID, AUDIT_DATA)
VALUES(ID, CONCAT('New employee with ID = ', new.emp_id, ‘was added on’, DATE));
问题是我可以让它在没有最后添加的日期的情况下工作,但如果我尝试使用日期,在将新记录插入 tbl_employees 时会出错。
错误: #1054 - “字段列表”中的未知列“日期”
我在这里错过了什么?
提前致谢
【问题讨论】:
【参考方案1】:也许您只想要当前日期?
CREATE TRIGGER adding_employee AFTER INSERT
ON tbl_employee FOR EACH ROW
INSERT INTO tbl_employee_audit(ID, AUDIT_DATA)
VALUES(ID, CONCAT('New employee with ID = ', new.emp_id, ' was added on ', CURRENT_DATE));
【讨论】:
【参考方案2】:要获取您的日期,您需要对其进行格式化
| DATE_FORMAT(CURRENT_DATE, "%b %d, %Y") | | :------------------------------------------------- | | 2021 年 7 月 21 日 |SELECT DATE_FORMAT(CURRENT_DATE, "%b %d, %Y")
db小提琴here
CREATE TRIGGER adding_employee AFTER INSERT
ON tbl_employee FOR EACH ROW
INSERT INTO tbl_employee_audit(ID, AUDIT_DATA)
VALUES(ID, CONCAT('New employee with ID = ', new.emp_id, ' was added on ', DATE_FORMAT(CURRENT_DATE, "%b %d, %Y")));
【讨论】:
这行得通。非常感谢您的帮助 别忘了accept the answer以上是关于在 MySQL 中使用带有日期的连接字符串创建触发器的主要内容,如果未能解决你的问题,请参考以下文章
MySQL触发器在插入或更新之前将日期值更改为weekstart
php读取mysql网页显示是1970-01-01 数据库中是字符串类型,比如41036读取出为日期为2012-05-07