在我的MySQL数据库中,我有一个startdate
和一个enddate
字段。使用今天的PHP日期,有没有办法只选择startdate
在今天之前的行,而enddate
是在今天的日期之后?
答案 0 :(得分: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
答案 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}'" );