2014-02-10 28 views
0

我試圖僅顯示過去30天內未更新的項目。高級MySQL:僅顯示30天內未更新的項目

此查詢工作正常,除了它顯然是缺少30天更新的要求:

$Listings = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."fsrep_listings, ".$wpdb->prefix."fsrep_listings_to_users WHERE ".$wpdb->prefix."fsrep_listings_to_users.ID = ".$Userprofile->ID." AND ".$wpdb->prefix."fsrep_listings.listing_visibility = 1 AND ".$wpdb->prefix."fsrep_listings.listing_id = ".$wpdb->prefix."fsrep_listings_to_users.listing_id"); 

我已經試過了,但都無濟於事:

$Listings = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."fsrep_listings, ".$wpdb->prefix."fsrep_listings_to_users WHERE ".$wpdb->prefix."fsrep_listings_to_users.ID = ".$Userprofile->ID." AND ".$wpdb->prefix."fsrep_listings.listing_visibility = 1 AND ".$wpdb->prefix."fsrep_listings.listing_id = ".$wpdb->prefix."fsrep_listings_to_users.listing_id AND ".$wpdb->prefix."fsrep_listings.listing_last_updated < unix_timestamp(now() - interval 30 day"); 

如果你需要以下信息,我使用以下時間戳格式將數據存儲在數據庫中:2011-02-12 22:23:01。我必須錯過一些相對簡單的事情。謝謝你的幫助!

+1

你真的應該反思一下,你構造你的查詢方式。像這樣讀它們是不可能的。這是最後一個錯誤的典型來源! – arkascha

+1

第二個查詢甚至無法工作,它在最後缺少右括號。請提供表的定義,是實際的TIMESTAMP還是VARCHAR的日期? –

回答

0

我想我明白了:

$Listings = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."fsrep_listings, ".$wpdb->prefix."fsrep_listings_to_users WHERE ".$wpdb->prefix."fsrep_listings_to_users.ID = ".$Userprofile->ID." AND ".$wpdb->prefix."fsrep_listings.listing_visibility = 1 AND ".$wpdb->prefix."fsrep_listings.listing_id = ".$wpdb->prefix."fsrep_listings_to_users.listing_id AND date_format(".$wpdb->prefix."fsrep_listings.listing_last_updated,'%Y%m%d')<date_format(adddate(now(),interval -30 day),'%Y%m%d')");