我正在编写一个带有单个 datetime 参数的 mysql 存储过程。它在这样的选择语句中使用它..
select *
from table
where date >= @datefrom or @datefrom is null
当我编写 t-sql 查询时,这通常可以解决问题,但它似乎不适用于 mysql。
我也尝试过其他变体,例如
where date >= ifnull(@datefrom, date)
并且
where ((date >= @datefrom and @datefrom is not null) or (@datefrom is null))
但我没有得到我期望的结果..
有人可以对此有所了解吗?
这样的程序定义..
CREATE DEFINER=`root`@`%` PROCEDURE `prc_xxxxxx`(datefrom datetime)
BEGIN
select * from table
where date >= @datefrom or @datefrom is null
END
然后我会这样打电话..
call prc_xxxxxx ('2012-07-04 00:00:00')
或者
call prc_xxxxx (null)