2012-11-23 33 views
1

我想要得到的結果,其在未來2個月,我使用下面的查詢來(發佈日期格式的數據庫是正常 3月8日)MySQL查詢獲取導致未來2個月來

SELECT * FROM imdb WHERE (STR_TO_DATE(`release`, '%e %M %Y')-now()<2months) ORDER BY STR_TO_DATE(`release`, '%e %M %Y') DESC LIMIT 20 

我知道2個月將無法正常工作......因此,如何將這項工作在MySQL的...我想... THX另一種方式是

SELECT * FROM imdb WHERE (STR_TO_DATE(`release`, '%e %M %Y')-now()<5184000000) ORDER BY STR_TO_DATE(`release`, '%e %M %Y') DESC LIMIT 20 
+0

請閱讀http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-add – eisberg

回答

0

THX的傢伙,我發現了ANS(SIR姬幫助我;))

"SELECT * FROM imdb WHERE (TO_DAYS(STR_TO_DATE(`release`, '%e %M %Y'))-TO_DAYS(NOW())<60 && TO_DAYS(STR_TO_DATE(`release`, '%e %M %Y'))-TO_DAYS(NOW())>0) ORDER BY STR_TO_DATE(`release`, '%e %M %Y') LIMIT 20" 

這樣我就可以限制開始和結束日期......從現在開始()..希望能幫助

0

這種查詢可以爲您提供的輸出:

SELECT * FROM tbl_name WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) 

讓我知道解決的辦法

感謝

0

試一下這個::

SELECT * FROM imdb WHERE DATE_SUB(CURRDATE(),(STR_TO_DATE(`release`, '%e %M %Y')) <60 ORDER BY STR_TO_DATE(`release`, '%e %M %Y') DESC LIMIT 20 
0

像下面的東西應該幫助

SELECT * FROM `imdb` WHERE (DATE_SUB(`release`, INTERVAL 2 MONTH) < now()) ORDER BY STR_TO_DATE(`release`, '%e %M %Y') DESC LIMIT 20 
0
$sql = "SELECT * FROM tableName (SELECT MONTH(datefieldName) AS m , DAY(datefiled) As d FROM tableName) AS tmp ORDER BY (m,d) < (MONTH(CURDATE()), DAY(CURDATE())), m , d limit 0,20"; 

希望它有用您!