我在事件表中有两列(均为日期时间)startDate 和 endDate。
我正在使用 php 的 date()
函数检索当前日期。
这导致例如 2013-03-12。
现在有三种可能性的事件结合今天发生的日期:
- 事件在这一天开始,也在这一天结束
- 一项事件提前开始,今天结束
- 事件从今天开始但在未来结束 (>= 2013-03-13)
现在我想将这些全部分解成单独的查询,因为我不习惯处理日期。我从第一个查询开始,但我已经失败了。我尝试了以下方法:
SELECT * FROM events WHERE (startDate= '2013-03-12' AND endDate= '2013-03-12')
还有:
SELECT * FROM events WHERE NOT (startDate < '2013-03-12' OR endDate > '2013-03-12')
我也尝试过使用 DATE()
并将日期格式化为“2013-03-12%”。
我不知道为什么它不起作用,但我确定至少有 1 个事件在 12 日发生。感谢您的帮助。
最佳答案
尝试使用 MySQL 的 DATE()
将日期列修剪为日期部分的函数:
SELECT *
FROM events
WHERE (DATE(startDate) = '2013-03-12' AND DATE(endDate)= '2013-03-12')
关于两列之间的Mysql datetime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15368589/