MySql存储过程破坏了str_to_date()函数

时间:2014-07-03 20:45:07

标签: mysql sql stored-procedures

MySql存储过程破坏了str_to_date()函数。

当在终端模式下运行以下MySQL查询时,它可以正常工作。

 UPDATE `tt002grawdata` SET `bizdate` = str_to_date(`BusinessDate`,'%m/%d/%y');

         Query OK, 75 rows affected, 2028 warnings (0.01 sec)
         Rows matched: 2028   Changed: 75   Warnings: 0

但是,当置于MySQL存储过程中时,更新查询会被破坏。

 DELIMITER $$
 CREATE PROCEDURE test_upd
 BEGIN
 UPDATE `tt002grawdata` SET `bizdate` = str_to_date(`BusinessDate`,'%m/%d/%y');
 End $$
 DELIMITER ;

请注意str_to_date()函数已更改,因此会出错。

 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual
 that corresponds to your MySQL server version for the right syntax to use near'BEGIN
 UPDATE `tt002grawdata` SET `bizdate` = str_to_date(`BusinessDate`,'%m/%d/'
 at line 2

此问题是否有解决方法?

感谢。

爱德华。

1 个答案:

答案 0 :(得分:0)

您需要()以及存储过程名称。您的程序正文应如下所示。有关详细信息,请参阅MySQL Documentation On Create procedure

DELIMITER $$
 CREATE PROCEDURE test_upd()
 BEGIN
 UPDATE `tt002grawdata` SET `bizdate` = str_to_date(`BusinessDate`,'%m/%d/%y');
 End $$
 DELIMITER ;