2017年2月1日水曜日

vol.237 MySQLで時刻をマイクロ秒まで取得

DBにおいて日付、特に時刻のデータを扱ったり、取得する場合、大抵はミリ秒やマイクロ秒まで取得できるのが一般的ですが、MySQLでは、最近までそれができませんでした。
しかし、バージョンが5.6.4になってから、ようやくMySQLでもミリ秒やマイクロ秒を扱えるようになりました。

・時刻のデータをミリ秒やマイクロ秒まで扱えるようにする
まず、MySQLで時刻のデータを扱うことができるデータ型は以下のとおりです。

DATATIME
TIMESTAMP
TIME

テーブル作成時などにこれらの型のデータを定義する場合に、以下のようにすることで、ミリ秒やマイクロ秒を扱えるようになります。

DATETIME(3)
2017-01-31 11:41:25.514
TIMESTAMP(6)
2017-01-31 11:41:25.514128
TIME(2)
11:41:25.51
上記の例では、
DATETIME型…1ミリ秒まで扱える
TIMESTAMP型…1マイクロ秒まで扱える
TIME型…10ミリ秒まで扱える

という感じになります。
()に入る引数は、1~6の数値のみ許容されており、それは、つまり時刻の小数点以下最大6桁まで許容となるので、1マイクロ秒まで扱えるということになるのです。当然ながら、1~6の数値以外を入れると、エラーになります。

・現在時刻をミリ秒やマイクロ秒まで取得する
MySQLで現在時刻を取得するのは、now()関数です。
これも同様に、1~6の数値を引数にすることで、その桁数分の小数点以下の桁を取得できるようになります。

now(3);
2017-02-01 23:25:59.245
以上、参考になるかわからない情報でした。。


0 件のコメント:

コメントを投稿