【问题标题】:MySQL query to exclude a range of dates not workingMySQL查询排除一系列日期不起作用
【发布时间】:2021-09-03 08:50:49
【问题描述】:

我有一个数据集,其中包含存储为 2021-08-31 的 booking_date 字段。我需要运行一个查询,排除比特定范围更远的所有日期,即今天 +7。

使用:

SELECT *
FROM work_jobs
WHERE (cast(booking_date as date)  NOT BETWEEN DATE_ADD(cast(NOW() as date), INTERVAL 1 DAY) AND NOW()) AND job_closed = 0 ORDER BY booking_date ASC;

不起作用。返回包含未来日期的完整数据集。

有什么建议吗?非常感谢。

【问题讨论】:

  • booking_date 是数据库中的 VARCHAR。
  • 不起作用不是有用的错误描述。
  • 如果 booking_date 是一个 varchar(顺便说一句,这是一个糟糕的决定),你应该使用 str_to_date(booking_date, '%Y-%m-%d') 而不是强制转换
  • 谢谢,我会尝试...我继承了这个架构,并且知道我需要做很多更改。
  • SELECT * FROM work_jobs WHERE (str_to_date(booking_date, '%Y-%m-%d') NOT BETWEEN DATE_ADD(NOW(), INTERVAL 7 DAY) AND NOW()) AND job_closed = 0 ORDER BY booking_date ASC;仍然返回完整的数据集....

标签: mysql amazon-aurora


【解决方案1】:

非常感谢 - 成功了。

WHERE (str_to_date(booking_date, '%Y-%m-%d')

我一直在与日期作斗争:)。祝一切顺利;保持安全。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    • 1970-01-01
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多