在MYSQL中设置日期参数

时间:2017-08-21 19:47:00

标签: mysql

我是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;

原始代码还有很多内容,当我运行它时,就像一段脚本工作正常,当我尝试将其创建为存储过程时它失败了,我把它归结为我如何处理参数,但不知道我做错了什么......如果不是一切。

任何帮助都会很棒。

2 个答案:

答案 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$$