web-dev-qa-db-ja.com

過去24時間に書かれた投稿に対してこのSQLステートメントをどうやって書くのですか?

この7日間の(post_type 'mixtapes'の)投稿数を数えるために、このSQLコードを誰かがくれました。私はそれを「過去24時間以内」にも変換しようとしましたが、それは間違った数を与えています。

これが7日間有効な彼のコードです。

$querystr = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'mixtapes' AND post_date >= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY) LIMIT 0, 30");
if (0 < $querystr) $querystr = number_format($querystr);

これは間違った答えを与える1日の期間のための私のコードです

$querystr = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'mixtapes' AND post_date >= DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY) LIMIT 0, 30");
if (0 < $querystr) $querystr = number_format($querystr);
2
Tallboy

個人的には、PHP Dateクラスを使って、次に $ date-> sub() を使ってphpで日付を生成します。さらに2、3行のコードを使用すると、クエリは次のようになります。

... WHERE post_date >= ".$date." ...
0
Joshua