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
此问题是否有解决方法?
感谢。
爱德华。
答案 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 ;