我是MySQL的初学者并编写了一些基本的MySQL存储过程,但是看不出下面的代码有什么问题,我收到了错误
“错误代码:1064。您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以便在第9行附近使用正确的语法
CREATE PROCEDURE CA_Daily
(
DateTime_Start datetime
)
BEGIN
SET DateTime_Start = DATE_FORMAT((CURDATE() - INTERVAL 1 DAY ) ,'%Y%-%m-%d %T');
END;
原始代码还有很多内容,当我运行它时,就像一段脚本工作正常,当我尝试将其创建为存储过程时它失败了,我把它归结为我如何处理参数,但不知道我做错了什么......如果不是一切。
任何帮助都会很棒。
答案 0 :(得分:0)
您应该在SET语句中使用STR_TO_DATE转换:
示例:
STR_TO_DATE('8/21/2017 12:58 PM', '%c/%e/%Y %H:%i')
答案 1 :(得分:0)
请试试这个:
DELIMITER $$
CREATE PROCEDURE CA_Daily1
(
DateTime_Start datetime
)
BEGIN
SET DateTime_Start = DATE_FORMAT((CURDATE() - INTERVAL 1 DAY ) ,'%Y%-%m-%d %T');
END$$