1

私はこのクエリを作成しましたが、FEBの月を除いて、正常に機能しています。なんらかの理由で、FEBはINTERVAL 1 MONTHJANにも読み戻す機能を使用して28日あるためです。そしてそれはFEBの始まりからFEBの終わりまでだけ読むべきです!

SELECT SUM(IF((`date` BETWEEN DATE_SUB('2013-02-28', INTERVAL 1 MONTH) AND '2013-02-28'), earnings, "null")) AS Rev0 
FROM table
4

1 に答える 1

1

任意の日付を指定すると、これを使用して月の最初の日を取得できます。

DATE_SUB('2013-02-28', INTERVAL DAY('2013-02-28')-1 DAY)

またはこれも:

CAST(DATE_FORMAT('2013-02-28' ,'%Y-%m-01') as DATE)

そして最終日には、すでに定義されている関数があります。

LAST_DAY('2013-02-28')

クエリは次のようになります。

SELECT
  SUM(IF((`date` BETWEEN DATE_SUB('2013-02-28', INTERVAL DAY('2013-02-28')-1 DAY)
          AND LAST_DAY('2013-02-28')), earnings, "null")) AS Rev0 
FROM table
于 2013-02-01T08:01:24.180 に答える