在我的 MySQL 数据库中,我有一个startdate
和一个enddate
字段。使用 PHP 中的今天日期,有没有办法只选择startdate
今天日期之前和今天日期enddate
之后的行?
问问题
211 次
5 回答
3
尝试
WHERE startdate >= todays_date AND enddate <= todaysdate
或者
WHERE todays_date BETWEEN startdate and enddate
而不是使用 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 回答