MySQLでは、最後の13ヶ月からレコードを取得中に問題が発生しました

サチン:

私は、次のMySQLのクエリを使用して、最後の13ヶ月からレコードを取得するために取り組んでいます:

SELECT YEAR(`customer_date`),
       MONTHNAME(`customer_date`),
       COUNT(`customer_date`) AS Enquiries
FROM   `crm_customers`
WHERE  DATE(`customer_date`) BETWEEN CURRENT_DATE - INTERVAL 13 month AND
                                     CURRENT_DATE
GROUP  BY YEAR(`customer_date`),
          MONTH(`customer_date`)
ORDER  BY YEAR(`customer_date`) DESC,
          MONTH(`customer_date`) DESC  

私のプロトタイプMySQLのテーブルcrm_customersのルックスのように:

customer_id    customer_date
1              2019-02-01 00:00:00
2              2019-02-02 00:00:00
...            ...
...            ...
...            ...

出力:

ここでは、画像の説明を入力します。

けれども上記のクエリは正常に動作しないと私に、今日から13ヶ月の隙間から、昨年の非常に最後の月に関連する1つの問題を除いて、ほぼ正しい結果セットを提供します。

今日は私の上記のクエリで月2020日付条件の第七です

WHERE  DATE(`customer_date`) BETWEEN CURRENT_DATE - INTERVAL 13 month AND CURRENT_DATE

2019年2月の7日から結果をフェッチ開始。

2月、2019年の月で、私は104個のエントリを持っています。24件のエントリが(2月1日と2019年2月6日の間)07 - 2月 - 2019年の前にあるので、しかし、私の上記のSQLは、わずか80のエントリをフェッチします。私も、これらのエントリが含まれるようにしたいです。どのように私は必要な結果を達成するために、私の日付条件を変更することができます。

syrkull:

あなたのWHERE句を次のように変更します。

WHERE  DATE(`customer_date`) BETWEEN DATE_FORMAT(NOW() ,'%Y-%m-01') - INTERVAL 13 month AND DATE_FORMAT(NOW() ,'%Y-%m-01')

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=33727&siteId=1