【问题标题】:Mysql date compare error LIMIT 0,30Mysql日期比较错误LIMIT 0,30
【发布时间】:2023-03-27 09:05:01
【问题描述】:

我想将我的日期与 mysql db 中的数据进行比较,但出现错误“#1064 - 您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以了解在附近使用的正确语法'WHERE '2014-06-09' >= date_start AND '2014-06-11'

SELECT name
FROM seminars
WHERE allowed_users LIKE '%1%'
AND (WHERE '2014-06-09' >= date_start AND '2014-06-11' <= date_end)

【问题讨论】:

  • 您已经使用了两次WHERE。只需删除第二个。
  • 您不仅错误地使用了WHERE,而且还将字符串视为Date
  • @alfasin 将日期作为字符串进行比较在 MySQL 中始终适用于我。
  • @JeremyMiller 这不是 MySQL 的“魔法”——它对你有用,因为你维护了特定的格式,它也尊重字符串比较,例如:yyyy-mm-dd。它有效的事实并不意味着它是好的做法。在您想要做任何具有“日期行为”(例如添加一天)的事情的那一天,您将失败。
  • @alfasin 啊,所以如果区域设置不同(或类似),那么格式将不同,查询将不会按预期执行。谢谢...今晚我在尝试提供帮助的同时学到了很多东西。

标签: mysql date compare


【解决方案1】:

您已经使用了两次“where”关键字,这是肌酸问题。如果您在开始和结束日期列中存储日期时间,还建议您使用日期功能,以确保不会跳过任何记录。

SELECT name
FROM seminars
WHERE allowed_users LIKE '%1%'
AND ( '2014-06-09' >= date(date_start) AND '2014-06-11' <= date(date_end))

【讨论】:

    【解决方案2】:
    SELECT name
    FROM seminars
    WHERE allowed_users LIKE '%1%'
    AND '2014-06-09' >= date_start AND '2014-06-11' <= date_end
    

    【讨论】:

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