mysql

mysqlでdatetimeカラムの年と月だけを取得する

mysqlのdatetime型のカラムについて、年月日でうまく集計してくれるような関数は用意されていない。 そこで、 DATE_FORMAT 関数を使いdatetime型から年や月から文字列を作り、これをつかってgroup byで集計するようにする。 SELETE DATE_FORMAT(date_col, '%…

with構文を使ってみた。

SQLでテーブルの一部だったり集計結果を使って表を作りたい時、with構文が非常に役に立つ。 WITH tmp1 as (SELECT COUNT(*) cnt, date FROM t1 GROUP BY date), tmp2 as (SELECT COUNT(*) cnt, date FROM t2 GROUP BY date) SELECT tmp1.date, tmp1.cnt, tmp…

FROM_UNIXTIMEを使ってUNIXTIMEから文字列への変換を行う。

これまで、DB上に登録されているUNIXTIMEを日付形式の文字列に変換するときは、一旦データを取り出してからアプリ側で変換していた。 ところが、MySQLではFROM_UNIXTIMEという関数を使えばSQLだけでこの操作を完結することができる。 SELECT FROM_UNIXTIME(1…

選択カラムに対する切り上げを実装する。

MySQLで切り上げをしようと思う場合、ちょっと面倒なことが起こる。 というのも、MySQLには四捨五入と切り捨てのメソッドはあるが、切り上げは標準では実装されていないから。 そこで、足し算をして繰り上げたものを切り捨てて繰り上げを実現する、という手…