【发布时间】:2015-07-03 19:42:35
【问题描述】:
我有一个 mySQL 数据库,我需要在其中检查表中的最近一天,如果一天过去了,则调用一个过程。所以我尝试了这段代码:
DECLARE mDay DATE;
SELECT `date` INTO mDay
FROM TimeTable ORDER BY `date` DESC
LIMIT 1;
IF(mDay = NULL OR mDay != DATE(CURRENT_TIMESTAMP)) THEN
CALL UpdateTimeTable()
END IF;
(在我当前的测试用例中,时间表是空的。)
但是该过程永远不会被调用,所以我尝试将条件更改为:mDay = NULL OR mDay != NULL,但它仍然没有被调用。然后我尝试了mDay = DATE(CURRENT_TIMESTAMP) OR mDay != DATE(CURRENT_TIMESTAMP),它仍然没有被调用。
最后我把它改成了简单的true,然后它调用了这个过程。
这里出了什么问题?
【问题讨论】:
-
= NULL的测试应该是IS NULL吗?如本问题所示,How to check if a variable is NULL, then set it with a MySQL stored procedure?。我是Postgres 人,不是 MySQL 人,所以我不确定。
标签: mysql datetime stored-procedures date-comparison