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タイムスタンプが得られる