如何使用PHP从数据库中检索某些表?

时间:2011-10-20 01:04:26

标签: php mysql sql

我有一个包含这些列的表:

+------------------------------------------------------+
| ad_id | ad_title | active |   placed_on   | duration | 
+------------------------------------------------------+
|     1 | First    |      1 |  2010-19-10   |      365 |
+------------------------------------------------------+
|     2 | Second   |      1 |  2011-18-10   |      365 |
+------------------------------------------------------+

这是一个列表,从placed_on那天起365天后到期,我想创建一个PHP + SQL语句,显示本月到期的列表(例如去年发布的第一个广告到期今天)。我怎样才能在这些日期做数学,比如2010-19-10 + 365?并显示本月到期的那些。到达后我的大脑僵住了:

mysql_query("SELECT `ad_id`, `ad_title`, `active` FROM `listings` WHERE `placed_on` = ``;

是否可能,如果是,请告诉我。谢谢!

2 个答案:

答案 0 :(得分:1)

您可以使用adddate作为日期算术:

select ad_id, ad_title, active
from listings
where adddate(placed_on, concat(duration, ' days')) between '2011-10-01' and '2011-10-31'

据推测,您可以通过PHP提供本月的第一天和最后一天。

答案 1 :(得分:0)

如果这不是你的桌子并且你不能将puts_on变成更好的东西,你可以在前端生成你的偏移日期并将其传递给:

STRCMP()

http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#function_strcmp

WHERE STRCMP(placed_on,'2010-19-10') = 1 ORDER BY placed_on 

将为您提供比2010-19-10更新的一切。