2012-03-08 12 views
1

から取得し、私は私のMySQLデータベースからデータをフェッチするために、このPHPを使用しています:データベースだけで、最後の30日間

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

私は$のwpdb変数を使用していますので、私はワードプレスにいるよ気づくことがあります。

テーブルからすべてのデータを返します。status='C'です。これはうまくいきますが、私は過去30日間のデータのみを取得する必要があります。私はこのエントリが格納されたときにmysqlがデータを格納しているかどうか分かりませんが、という別の列がstatusと同じ行にあります。これは、次の形式で日付を格納します。

2011-10-14 15:33:58

は先月からデータを盗んために自分のコードを更新するためにそれを使用する方法はありますか?

ここにアドバイスをいただければ幸いです。

C

+0

あなたが尋ねる前にまず検索しました可能性があります。どうすればいいですか?http://stackoverflow.com/questions/2041575/mysql-query-records-between-today-and-last-30-days –

答えて

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')"); 

この1が戻って30日間ですが、あなたは「間隔-30日を置き換えることができますWICHがあります"と" interval -1 month "を入力するか、dev.mysqlにアクセスしてください。

希望します。

+0

ありがとうございます。完璧に動作します。 – Cybercampbell

+0

お世話になり、ありがとうございます:) – FeRtoll

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() - リターンは式expr1 - expr2には、他に 1日から日数の値として表現。 expr1とexpr2は日付または日付と時刻です。 式です。値の日付部分だけが 計算で使用されます。

そして:

CURDATE() - 現在の日付

関連する問題