【问题标题】:MySQL query to return 1 and 0 based on difference between datesMySQL查询根据日期之间的差异返回1和0
【发布时间】:2021-07-26 16:39:45
【问题描述】:

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

LastDate,其数据类型为 DATETIME。这个'NULL'的默认值

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

如果 DATEDIFF(CURRENT_TIME,LastDate) 为

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

【问题讨论】:

  • 更新问题以显示您的 SQL 尝试。提示,SELECT CASE END ... 可能是一个选项。
  • 您正在测试 ABC 中的特定行吗?或者你想要每行的 0/1 结果?

标签: mysql sql database mysql-dependent-subquery


【解决方案1】:

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

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;

【讨论】:

    猜你喜欢
    • 2013-06-26
    • 2021-01-23
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    • 2022-06-30
    • 1970-01-01
    相关资源
    最近更新 更多