mysql実装日付フォーマット(date_format)


私たちは日常のデータ統計でよく「2018-12-12 16:21:12」or「2018-12-12 16:21:12.609000」という時間フォーマットに遭遇しますが、ある日何個のデータ量が発生したかを統計するには、SQLはどう書きますか?本文は皆さんの学習と使用に役立つことを望んでいます.
content
createTime
デバイス
2018-12-10 15:20:20
デバイス
2018-12-11 15:20:21
デバイス
2018-12-11 15:20:22
デバイス
2018-12-12 15:20:23
  • 単純に1、2日のデータ量を統計するだけで、文を書くことができ、日付を変更すれば実現できます.mysql実装(その1つの書き方).
  • --    2018-12-11        :
    
    SELECT
    	count( content ) AS content 
    FROM
    TABLE 
    WHERE
    	createTime BETWEEN '2018-12-11' 
    	AND '2018-12-12';
    

    次のデータが得られます.
    content
    2
    --    2018-12-12        ,           :
    
    SELECT
    	content,
    	createTime,
    	count( createTime ) 
    FROM
    TABLE 
    WHERE
    	createTime BETWEEN '2018-12-12' 
    	AND '2018-12-13' 
    GROUP BY
    	content,
    	createTime;
    
  • 最近の60日間を統計する必要がある場合、毎日のデータ量はいくらですか.どうやって実現しますか.以上のように時間を変更する方法で60+回変更するのでしょうか.もちろん...
  • ではありません
    この場合、日付時刻のフォーマット処理が必要になります
    メソッド:date_format(sysdate(),’%Y-%m-%d’)
    --        “YYYY-MM-DD”
    
    SELECT
    	content,
    	date_format( createTime, '%Y-%m-%d' ) AS createTime 
    FROM
    TABLE 
    WHERE
    	createTime > '2018-12-10';
    

    フォーマットされた日付は次のように表示されます.
    content
    createTime
    デバイス
    2018-12-10
    デバイス
    2018-12-11
    デバイス
    2018-12-11
    デバイス
    2018-12-12
    --       sql            :
    
    SELECT
    	a.createTime,
    	count( a.createTime ) 
    FROM
    	( SELECT content, date_format( createTime, '%Y-%m-%d' ) AS createTime FROM TABLE WHERE createTime > '2018-12-10' ) a 
    GROUP BY
    	a.createTime;
    

    結果は次のとおりです.
    createTime
    count
    2018-12-10
    1
    2018-12-11
    2
    2018-12-12
    1