【问题标题】:How to get the closest row to the current date in my table?如何在我的表中获取最接近当前日期的行?
【发布时间】:2015-07-16 21:53:07
【问题描述】:

我想从用户访问页面时当前日期所在的数据库中提取表。

表格示例:

---+----------+-----------
ID |   from   |    to
---+----------+-----------
1  |2015-07-01|2015-07-14
---+----------+-----------
2  |2015-07-15|2015-07-31
---+----------+-----------
3  |2015-08-01|2015-08-20

输出:

如果日期为2015-07-10,则输出应为ID 1

如果日期为2015-08-02,则输出应为ID 3

【问题讨论】:

  • where curdate() between `from` and `to`
  • 如果日期是2015-08-21呢?
  • @Strawberry if(!$row_sample){ echo do something;}

标签: php mysql date mysqli between


【解决方案1】:

如果我理解你的问题,你想要做的是选择今天的日期在“从”和“到”之间的那一行?

如果是这种情况,你应该这样做:

SELECT id
FROM your_table_name 
WHERE CURDATE() >= `from`
    AND CURDATE() <= `to`

或者如果你喜欢:

SELECT id
FROM your_table_name
WHERE CURDATE() BETWEEN `from` AND `to`

这两个查询都将返回今天的日期介于“from”和“to”之间的一行或多行。

【讨论】:

  • 这个查询会因为没有转义保留词而抛出错误。
  • 我确实建议你从 -> from_date 和 to -> to_date 改变,这样你就不会感到困惑,因为 from 和 to 也是 mysql 语句的一部分,但这是我。
猜你喜欢
  • 1970-01-01
  • 2021-07-27
  • 2022-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-01
  • 2014-10-30
  • 1970-01-01
相关资源
最近更新 更多