mysql - 检查 MySQL 中的日期是否即将到来或过去

标签 mysql sql

表格中有两列

  • event_date(值为 09/22/2013)
  • event_time(值为晚上 7:11)

现在我想编写一个查询,它应该返回具有 future 过去 时间和日期的行。

我是这样写的

SELECT *
FROM events e
WHERE CONCAT(e.event_date, ' ', e.event_time) <= DATE_FORMAT(NOW(), '%m/%d/%Y  %g:%i %a')

但它没有用,它只是其中一个你永远不知道它们出了什么问题的东西

提前致谢!

最佳答案

SELECT * 
FROM Events
WHERE event_date < CURRENT_DATE()
      OR (event_date = CURRENT_DATE() AND event_time <= CURRENT_TIME())
   

这样做的好处是可以使用 event_date 上可能存在的任何索引

关于mysql - 检查 MySQL 中的日期是否即将到来或过去,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17666159/

相关文章:

sql - 数据建模 - 如何处理两个相关的 "status"列?

SQL:检查数组中是否至少有一个元素在子查询中

php - 如何从两个表中查询第三个表的条件

mysql - 两个不同的 select 子句中的不相等列使用了 union 子句

mysql - 有没有人让 pgloader 为从 Mysql 迁移到 Postgres 工作

jquery - 使用jquery和ajax添加好友功能

mysql - MySql使用fastinsert时中文变成乱码

php - TYPO3 扩展中的动态数据库登录

mysql - 数据库查询计算所有是/否票和它们所属的数据库记录?

mysql - 在子查询中使用查询中的列