如何获取2个日期之间的行

时间:2012-06-15 13:43:19

标签: php mysql

在我的MySQL数据库中,我有一个startdate和一个enddate字段。使用今天的PHP日期,有没有办法只选择startdate在今天之前的行,而enddate是在今天的日期之后?

5 个答案:

答案 0 :(得分:3)

尝试

WHERE startdate >= todays_date AND enddate <= todaysdate

WHERE todays_date BETWEEN startdate and enddate

Docs for BETWEEN here

而不是使用PHP获取当前日期而不是使用MySQL函数CURDATE()中的构建,所以:

WHERE startdate >= CURDATE() AND enddate <= CURDATE()

WHERE CURDATE() BETWEEN startdate and enddate

答案 1 :(得分:3)

尝试BETWEEN

WHERE today between START_DATE AND END_DATE

答案 2 :(得分:1)

您可以在子句之间使用SQL:

$query = "SELECT colList FROM table WHERE CURDATE() BETWEEN startdate AND enddate";

答案 3 :(得分:0)

你没有提供任何代码所以我假设你在db中的开始和结束日期有datetime数据类型,

$today = date("Y-m-d H:i:s")会产生类似2012-06-14 14:46:00的东西,这是Mysql理解的格式,所以可以在你的查询中使用它

select * from 'your-table' where $today BETWEEN 'start_date' AND 'END_DATE'

由于

答案 4 :(得分:0)

我的PHP和SQL很生疏,但以下内容应该适用于$ date是你今天的日期变量的地方。

$results = mysqli_query( $conn, 
    "select * from yourTable where startdate<'{$date}' AND enddate>'{$date}'" );