两列之间的MySQL日期时间

Goo*_*oey 5 mysql sql datetime range

我在事件表中有两列(均为日期时间)startDate和endDate。我正在使用date()php 的功能检索当天。

例如,这导致2013-03-12。

现在,有三种事件结合今天发生的日期的可能性:

  1. 活动开始,并在这一天结束
  2. 一个活动开始较早,今天结束
  3. 活动从今天开始但在将来结束(> = 2013-03-13)

现在,由于我不习惯使用日期,因此我想将所有这些分解为单独的查询。我从第一个查询开始,但是在那个查询上我已经失败了。我尝试了以下方法:

SELECT * FROM events WHERE (startDate= '2013-03-12' AND endDate= '2013-03-12')
Run Code Online (Sandbox Code Playgroud)

以及:

SELECT * FROM events WHERE NOT (startDate < '2013-03-12' OR endDate > '2013-03-12')
Run Code Online (Sandbox Code Playgroud)

我尝试使用DATE()aswell并设置日期格式,例如“ 2013-03-12%”。

我不知道为什么它不起作用,但我确定12日至少发生1个事件。任何帮助表示赞赏。

Joh*_*nde 6

尝试使用MySQL的DATE()函数将日期列修整为仅日期部分:

SELECT * 
FROM events 
WHERE (DATE(startDate) = '2013-03-12' AND DATE(endDate)= '2013-03-12')
Run Code Online (Sandbox Code Playgroud)