【问题标题】:mySQL date comparisons is always false?mySQL 日期比较总是错误的?
【发布时间】: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,然后它调用了这个过程。

这里出了什么问题?

【问题讨论】:

标签: mysql datetime stored-procedures date-comparison


【解决方案1】:

这是因为 mySQL 使用 IS NULLIS NOT NULL 与 NULL 进行比较,而 = 用于其他所有内容。

【讨论】:

    猜你喜欢
    • 2017-06-28
    • 2023-03-27
    • 1970-01-01
    • 2015-10-30
    • 2012-12-20
    • 2020-08-12
    • 1970-01-01
    • 2015-07-28
    • 1970-01-01
    相关资源
    最近更新 更多