【问题标题】:MySQL query between 2 dates fields2个日期字段之间的MySQL查询
【发布时间】:2013-05-12 16:10:25
【问题描述】:

我正在尝试创建一个 MySQL 查询,它将获取当前日期并将其与我的表中的 2 个日期字段进行比较,并返回满足该查询的行。

这是我的专栏 1- [from_date] 日期类型 2- [to_date] 也包含日期类型

查询假设返回介于这些日期之间的行。

这是我的查询

mysql_query("SELECT * FROM location WHERE from_date >= DATE() AND to_date <= DATE()")

我的问题是它没有返回任何东西。 我应该将我的列类型切换为 DATETIME 吗?

提前致谢。

【问题讨论】:

  • 如果你得到你的答案,你应该接受这个答案的伙伴。这不像你来,问一个问题,得到你的答案然后逃跑..
  • 对不起,这个论坛的新手,不知道答案在哪里,我一直在寻找它,但找不到它。你能指点我吗?

标签: php mysql


【解决方案1】:

您应该使用Now() 来获取系统的当前日期。

【讨论】:

  • NOW() 给出当前日期和时间CURRENT_DATE() 给出当前日期。
【解决方案2】:

在此处查看文档。
使用BETWEEN
mysql documentation here

【讨论】:

    【解决方案3】:

    使用between

    mysql_query("SELECT * FROM location WHERE CURDATE() between from_date and to_date 
    

    【讨论】:

      【解决方案4】:

      尝试使用 NOW() 替换 DATE()

          mysql_query("SELECT * FROM location WHERE from_date >= NOW() AND to_date <= NOW()")
      

      了解更多关于 NOW() here

      【讨论】:

      • 谢谢大家,我选择了 mysql_query("SELECT * FROM location WHERE CURDATE() BETWEEN from_date AND to_date"),效果很好。
      【解决方案5】:

      DATE() function 实际上只是从日期或日期时间表达式中提取日期部分。但是,它不会按您的意愿返回当前日期。

      要获取当前时间,请使用NOW()CURDATE()

      mysql_query("SELECT * FROM location WHERE CURDATE() BETWEEN from_date AND to_date")
      

      如果试图在两个值之间找到某个值,MySQL 也有 BETWEEN 运算符

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-10
        • 1970-01-01
        • 1970-01-01
        • 2021-12-08
        • 1970-01-01
        相关资源
        最近更新 更多