我有以下触发器,只要更新表A,就会将记录插入表B.这很好但是 TableA_date 是unix时间格式,我想在触发器插入表B中的记录时转换它。
DELIMITER $$
CREATE TRIGGER MyTrigger
AFTER INSERT
ON TableA
FOR EACH ROW
BEGIN
INSERT INTO TableB SET
TableB_id = NEW.TableA_id,
TableB_date = FROM_UNIXTIME(NEW.TableA_date, '%d/%m/%y %r'),
TableB_comment = NEW.TableA_comment;
END $$
DELIMITER ;
在我的结果中,而不是“01/01/70 03:00:05 AM”作为转换日期我得到“5” - 我知道格式字符串是正确的,因为我能够在select语句中使用它。谢谢你的帮助
答案 0 :(得分:0)
你工作太辛苦了。完全省略格式字符串。日期存储为日期,而不是字符串。
事实上,甚至根本不使用转换!只需直接指定日期列,MySQL就可以进行所需的任何转换。
我假设使用timestamp
数据类型存储TableA_date,而TableB_date是datetime
。 (虽然您也可能需要timestamp
。)
如果您正在使用其他数据类型,如int或char,请修复它。这不是构建数据库的正确方法。
只是回答你的实际问题(而不是告诉你正确的方法)你想要的日期格式是yyyy-mm-dd hh:mm:ss
而不是你拥有的。