ミリ秒単位で現在の時刻を取得する方法とmySqlでそれに5分を追加する方法
今すぐunix_timestamp()を選択し、unix_timestamp()+ 5 * 60 * 1000「5分後」;
NOW After 5 Minutes
1470381500 1470681500
MySQL 5.6.4は 時間値の小数秒 の完全なサポートを導入しました。 CURTIME関数は、現在の時刻を最大マイクロ秒で返すことができるようになりました。ミリ秒で返すには、次のように呼び出します。
_CURTIME(3)
_
ただし、これによりtime
値が得られます。ミリ秒単位の整数ではなく、後の値と見なされます。ミリ秒数を取得するには、UNIX_TIMESTAMP関数をCURTIME(3)
に適用し、結果に1000を掛けます。
_UNIX_TIMESTAMP(CURTIME(3)) * 1000
_
結果は、スケールが3のdecimal
になります。結果を実際の整数型にする必要がある場合は、さらにunsigned
にキャストできます。
_CAST(UNIX_TIMESTAMP(CURTIME(3)) * 1000 AS unsigned)
_
currentの時間(ミリ秒単位)はこれで終わりです。 5分追加すると、最後の結果に300,000を追加できます。
_CAST(UNIX_TIMESTAMP(CURTIME(3)) * 1000 AS unsigned) + 300000
_
または、乗算の前にちょうど300(秒)を追加できます(Arnel Avesの提案と同様)。
_CAST((UNIX_TIMESTAMP(CURTIME(3)) + 300) * 1000 AS unsigned)
_
そうすれば、意図がより明確になるかもしれません。ただし、間隔をCURTIMEに直接追加すると、おそらくさらに明確になります。
_CAST(UNIX_TIMESTAMP(CURTIME(3) + INTERVAL 5 MINUTE) * 1000 AS unsigned)
_
追加情報:
mysql> SELECT NOW(3), NOW(3) + INTERVAL 5 MINUTE;
+-------------------------+----------------------------+
| NOW(3) | NOW(3) + INTERVAL 5 MINUTE |
+-------------------------+----------------------------+
| 2016-08-04 14:43:53.738 | 2016-08-04 14:48:53.738 |
+-------------------------+----------------------------+
私は現在の時間しか知りません秒単位
select UNIX_TIMESTAMP();
5分は60 * 5 = 300秒なので、クエリは次のようになります
select UNIX_TIMESTAMP() + 300;