MySQL5.6でUNIX_TIMESTAMPをミリ秒単位まで取得したいとき
MySQL5.6でUNIX_TIMESTAMPをミリ秒単位まで取得したいとき
mysql> select ROUND(UNIX_TIMESTAMP(CURTIME(4)) * 1000); +------------------------------------------+ | ROUND(UNIX_TIMESTAMP(CURTIME(4)) * 1000) | +------------------------------------------+ | 1450618305656 | +------------------------------------------+
順を追っていくと
今の時刻を小数点以下4位まで取得
mysql> SELECT CURTIME( 4 ); +---------------+ | CURTIME( 4 ) | +---------------+ | 22:30:51.9985 | +---------------+
小数点以下4位まで含むUNIXタイムスタンプにする
mysql> select UNIX_TIMESTAMP(CURTIME(4)); +----------------------------+ | UNIX_TIMESTAMP(CURTIME(4)) | +----------------------------+ | 1450618337.4908 | +----------------------------+
で1000倍してROUND()四捨五入してミリ秒単位までの
UNIXタイムスタンプが得られる