-3

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

4

5 回答 5

3

尝试

WHERE startdate >= todays_date AND enddate <= todaysdate

或者

WHERE todays_date BETWEEN startdate and enddate

BETWEEN 的文档在这里

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

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

或者

WHERE CURDATE() BETWEEN startdate and enddate
于 2012-06-15T13:45:03.943 回答
3

尝试BETWEEN

WHERE today between START_DATE AND END_DATE
于 2012-06-15T13:45:08.570 回答
1

您可以利用 SQL 的 between 子句:

$query = "SELECT colList FROM table WHERE CURDATE() BETWEEN startdate AND enddate";
于 2012-06-15T13:45:27.047 回答
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'

谢谢

于 2012-06-15T13:49:28.363 回答
0

我的 PHP 和 SQL 都生锈了,但以下应该可以工作,其中 $date 是您放置今天日期的变量。

$results = mysqli_query( $conn, 
    "select * from yourTable where startdate<'{$date}' AND enddate>'{$date}'" );
于 2012-06-15T13:54:17.707 回答