gpt4 book ai didi

mysql str_to_date 在插入触发器之前

转载 作者:行者123 更新时间:2023-11-29 21:04:41 26 4
gpt4 key购买 nike

我正在使用应用程序日志中的时间戳,格式为“Apr 28 09:54:46”,这是下面 NEW.timestamp 中的值的格式。在按以下方式插入之前尝试使用触发器进行解析。

CREATE DEFINER=`xxxxx`@`%` 
TRIGGER `<trigger_name>`
BEFORE
INSERT ON `<table_name>` FOR EACH ROW
SET NEW.timestamp = STR_TO_DATE('NEW.timestamp', '%d %b %Y %H:%i:%S'), NEW.Id = UUID();

这将返回空值。如果有人能对此有所了解,我们将不胜感激。

最佳答案

STR_TO_DATE('NEW.timestamp', '%d %b %Y %H:%i:%S') 

是错误的。不要引用 NEW.timestamp

抱歉,我无法将其放在评论中,您看不到反引号。

用途:

STR_TO_DATE(`NEW`.`timestamp`, '%d %b %Y %H:%i:%S')

我已经发现问题了。 Mysql 检查触发器之前的参数。所以我添加了一个虚拟列 'tmp' varchar(32) 并使用它。

CREATE DEFINER=`root`@`%` TRIGGER myt
BEFORE INSERT ON times
FOR EACH ROW
SET NEW.ts = STR_TO_DATE(NEW.tmp, '%d %b %Y %H:%i:%S'), NEW.Id = UUID(),NEW.tmp='';

INSERT INTO times (id,tmp) VALUES (2,'28 Apr 2016 14:34:46');

关于mysql str_to_date 在插入触发器之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36917034/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com