DELIMITER //
CREATE PROCEDURE GetWinners(IN Number INTEGER , IN Table_Name VarChar(7))
BEGIN
SET @t1 = CONCAT('Select * FROM ', Table_Name, ' Where number = ', Number, ' && active = true && dateAndTime < 2015-02-10');
PREPARE stmt3 FROM @t1;
EXECUTE stmt3;
DEALLOCATE PREPARE stmt3;
END //
DELIMITER ;
dateAndTime 是我存储 DateTime 值的列。
我不明白为什么用 && dateAndTime < 2015-02-10'
, 查询不返回任何结果。
如果我删除 && dateAndTime < 2015-02-10'
,然后返回一些结果。
即使列中的 DateTime 值低于 2015-02-10,也会发生这种情况。
最佳答案
这很可能是由于您的日期格式,时间被添加到日期但是由于您在 mysql 中的偏好,它只显示没有时间的日期。
使用 trim
或 trunc
删除时间。
TRUNC(dateAndTime) < TO_DATE('2015-02-10', 'YYYY-MM-DD')
关于java - MYSql 存储过程,日期时间值不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28346793/