mysql过程CONCAT错误

时间:2017-09-05 08:53:09

标签: mysql

我希望将数据复制到另一个具有当前月份的表中

这个sql没问题 SELECT * FROM aqi_hour where DATE_FORMAT( date, '%Y%m' ) = DATE_FORMAT( CURDATE( ) ,'%Y%m' )

但这不行,执行CALL porcedureName() create procedure porcedureName () begin SET @sqlstr = CONCAT(' CREATE TABLE aqi_hour_',DATE_FORMAT(now(),'%Y%m') ,' SELECT * FROM aqi_hour where ', DATE_FORMAT( date, '%Y%m' ) ,'=', DATE_FORMAT( CURDATE( ) , '%Y%m' )); PREPARE stmt1 FROM @sqlstr ; EXECUTE stmt1 ; end

错误消息:[错误] 1054 - 未知列'日期'在'字段列表'

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试:

SET @`sqlstr` := CONCAT('CREATE TABLE aqi_hour_', DATE_FORMAT(NOW(), '%Y%m'),
                        ' SELECT *
                          FROM aqi_hour
                          WHERE DATE_FORMAT(date, \'%Y%m\') =
                                DATE_FORMAT(CURDATE() , \'%Y%m\')
                        ');