比较mysql中的日期

时间:2012-08-19 12:32:40

标签: mysql sql

我在mysql中有一个存储过程无法工作我需要比较一个他的名字我得到的列作为参数和一个日期,他的值我得到的参数'我的语法就是这个。


DELIMITER $$

CREATE DEFINER=`vladiraheli`@`%` PROCEDURE sheepfarm.create_date_filter
( 
      in columnName VARCHAR(100), 
      in param varchar(100),
      in val varchar(100)
)
BEGIN

    declare formated_date  date;

    set formated_date = str_to_date(val,'%Y-%m-%d');

    set @stmt1 = concat(
     'select * from sheepfarm.Sheep where ' + 
      columnName + param  + 'formated_date') ;


    prepare stmt1 from @stmt1; 
    EXECUTE stmt1;

END $$

我该怎样才能做到这一点?

非常感谢你的帮助

1 个答案:

答案 0 :(得分:0)

这句话有问题:

set @stmt1 = concat('select * from sheepfarm.Sheep where ' + 
  columnName + param  + 'formated_date') ;

formated_date作为字符串传递,而不是作为变量传递。

set @stmt1 = concat('select * from sheepfarm.Sheep where ',  
  columnName, ' ', param, ' ', formated_date) ;

由于您使用的是CONCAT,因此您应该使用comma代替plus sign。 问题,columnNameparamval的可能值是什么?

相关问题