-2

在 MySQL 数据库中,我有一个包含“LastDate”列的表 ABC。

数据类型为 DATETIME 的LastDate 。此“NULL”的默认值

我需要为在这些情况下返回“1”的表编写一个查询。1) 如果 DATEDIFF(CURRENT_TIME,LastDate) >15 或如果 DATEDIFF(CURRENT_TIME,LastDate) 为 NULL(即 defaultVal)。

如果 DATEDIFF(CURRENT_TIME,LastDate) 小于 15,则返回“0”。

我试图为此编写一个 SQL 查询,但无法做到。请帮我写这个查询。提前致谢。

4

1 回答 1

0

您可以明确说明您的逻辑:

select t.*,
       (case when DATEDIFF(CURRENT_TIME, LastDate) > 15 or
                  LastDate is null
             then 1 else 0
        end) as flag
from t;

这可以简化为:

select t.*,
       coalesce(DATEDIFF(CURRENT_TIME, LastDate) <= 15, 1) as flag
from t;
于 2021-07-26T17:49:56.067 回答