情弱エンジニアのなかのblog

一人前のエンジニアになる為のブログです

SQL小数点の表示とtimestamp

SQLを扱っていて、小数点の表示とtimestampを扱ったので、使い方等記載いたします。

1.小数点の指定

データの平均を出す計算をするときなどで、小数第何位まで表示するか指定したいときがあると思うのですが そういったときに使えるのが[DATE_FORMAT]です。 使い方としましては以下のようになります。

hoge = 27 fuga = 7

WHERE
        hoge/fuga
3.7142.......

//小数第1位まで表示する
WHERE
        DATE_FORMAT(hoge/fuga , 1)

3.7

//小数第3位まで表示する
WHERE
        DATE_FORMAT(hoge/fuga , 3)
3.714

こちらで小数点をいくつまで表示するかを指定できます。

2.timestampの使い方

SQLで日にちを扱う型でtimestampというものがあるのですが、こちらの構造は以下のようになっています。

yyyy-mm-dd hh:mm:ss

年月日と時分秒が入っています。なので 例えばtimestamp型の[order_date]というフィールドがあったとして、注文日時が2017年1月1日~2017年6月30日までのデータを取得したいときに

WHERE
        order_date between '2017-01-01' and '2017-06-30'

という検索方法ですと、時間を無視しているので正しいデータを取得できません。

入力値を年月日時分秒にするか、どうしても年月日だけで検索したいときは [DATE_FORMAT]を使いましょう。

WHERE
        DATE_FORMAT(order_date , '%Y%m%d') between '2017-01-01' and '2017-06-30'

よく分からないという方は、まずは実際にSQLを動かして検証すると良いと思います。 私もそうして理解しました。

それでは