0
我有一个网站,我可以更新一个行的日期,通过点击表格,当我更改值并按下输入其更新的数据库。更新前的MySQL触发器 - 从字符串中设置dateformat
我想要什么:在日期字段中。只需键入mm/dd(例如05-20)按回车即可。
那么我的触发器应:
CREATE TRIGGER before_transactions_update
BEFORE UPDATE
ON Transactions FOR EACH ROW
BEGIN
-- variable declarations
declare inputDate integer;
-- trigger code
-- get month and day
-- LEFT(inputDate, 2); RIGHT(inputDate, 2)
-- STR_TO_DATE('2015,MONTH(LEFT),DAY(RIGHT)','%Y,%m,%d');
SET INSERTED.date = 2015-month-day-00-00-00;
END;
这就是我“尝试”,或者至少就我来了我自己。 MySQL的工作台阻止我在我的var声明,它告诉我,我需要一个分号后声明,我似乎并不需要
所以我一直在谷歌搜索几个小时,我遇到了死胡同作为新手在MySQL所以任何人都可以填写空白或点我在正确的方向,
这将是巨大
This results in 0000-00-00 00:00:00 ..所以我试着添加:set new.date = concat(year,“ - ”,(curdate()),' - ',new .date,'00:00:00');对于时间戳的正确格式,没有运气,而且,你能解释一下你的代码吗? (特别是if语句)预先感谢 –
您需要确保'date'的值得到正确发送。正如我所说的,它必须是'm-d'格式,如果你使用其他格式,它将不起作用。 if语句是说你已经有了一些正确日期的数据,并且说你正在更新mysql的某些内容,那么它可能会产生冲突。或者更好地检查字符串长度为'if length(new.date)= 5',表示您将数据发送为“m-d”格式,以便将年份数据添加到其中,否则保持原样。 –
还提供更新查询,您将在可能的情况下执行更新查询中'date'的值。 –