2012-03-08 108 views
1

我使用這個PHP從我的MySQL數據庫提取數據:但只有最近30天

$wpdb->get_var("select count(*) from " . $wpdb->prefix . "newsletter where status='C'"); ?> 

您可能會注意到我在WordPress的所以我使用了$變量WPDB。

這將返回表中的所有數據,其中status='C'。這一切都正常工作,但我只需要從過去30天獲取數據。我不確定mysql是否存儲有關何時存儲該條目的數據,但我確實在status的同一行中有另一個名爲created的列。該文件存儲在以下格式的日期:

2011-10-14 15:33:58

有沒有辦法用它來更新我的代碼只從過去一個月retreive的數據?

任何意見在這裏是不勝感激。

感謝ç

+0

你可能會首先搜索前問當前日期。這個如何:http://stackoverflow.com/questions/2041575/mysql-query-records-between-today-and-last-30-days – 2012-03-08 11:27:55

回答

2

有在MySQL ADDDATE()函數至極,你可以使用這個:)

$wpdb->get_var("select count(*) from " . $wpdb->prefix . "newsletter where status='C' and date_format(created,'%Y%m%d')>date_format(adddate(now(),interval -30 day),'%Y%m%d')"); 

這一個是30天回來,但你可以取代「區間 - 30日「與」區間-1月「或訪問dev.mysql你已經全部解釋。

希望它有幫助。

+0

謝謝..作品完美。 – Cybercampbell 2012-03-08 11:40:45

+0

很高興幫助,謝謝:) – FeRtoll 2012-03-08 11:42:08

2

在查詢試試這個:

select count(*) from " . $wpdb->prefix . "newsletter where status='C' 
AND DATE(created)>=DATE_SUB(CUR_DATE, INTERVAL 30 DAY) 
1
$wpdb->get_var("select count(*) from " . $wpdb->prefix . "newsletter where status='C' 
AND DATEDIFF(CURDATE(), created) <= 30"); ?> 

使用:

DATEDIFF() - 返回表達式1 - 表達式2表示爲從 一個日期到另一天的值。 expr1和expr2是日期或日期和時間 表達式。只有日期部分的值用於計算 。

和:

CURDATE() -

相關問題