[ MySQL ] DATE_FORMAT関数の使用例 ( where / group by )

Pocket

ここでは、MySQL の DATE_FORMAT の使用方法のサンプル SQL を掲載しています。SELECT 分の抽出項目や where 句にも使用することができます。

スポンサーリンク

DATE_FORMAT 関数と group by の組み合わせ

以下は、注文テーブル ( order ) から価格 ( price ) の日および月ごとの合計を抽出するサンプル SQL になります。注文日 ( order_date ) で日次および月次の集計をしています。

-- 日次で集計
select  
    sum(price) as sales_total
   ,DATE_FORMAT(order_date,'%Y-%m-%d') as daily
from 
    `order` 
where 0=0 
  and status = '1' -- 何か条件があればここに追加する
group by 
    daily

-- 月次で集計
select  
    sum(price) as sales_total
   ,DATE_FORMAT(order_date,'%Y-%m') as monthly 
from 
    `order` 
where 0=0 
  and status = '1' -- 何か条件があればここに追加する
group by 
    monthly

日次で集計した出力結果例

上記のサンプル SQL で日次で集計した結果例は次のようになります。

+-------------+------------+
| sales_total | daily      |
+-------------+------------+
|      108200 | 2009-12-21 |
|       66100 | 2009-12-25 |
|       12000 | 2009-12-27 |
|       24000 | 2009-12-28 |
|       40000 | 2010-01-10 |
+-------------+------------+
5 rows in set (0.00 sec)

where 句で DATE_FORMAT 関数を使用する

次のサンプル SQL は where 句で DATE_FORMAT 関数を使用しています。特定月を条件に指定しています。

select
    sum(price) as sales_total 
from 
    `order` 
where 0=0 
  and status = '1' 
  and DATE_FORMAT(order_date, '%Y-%m') = '2009-12'
スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *