web-dev-qa-db-ja.com

ミリ秒で時間を取得する方法とmySqlでミリ秒に5分を追加する方法

ミリ秒単位で現在の時刻を取得する方法と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)
_

追加情報:

6
Andriy M
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    |
+-------------------------+----------------------------+
1
Rick James

私は現在の時間しか知りません秒単位

select UNIX_TIMESTAMP();

5分は60 * 5 = 300秒なので、クエリは次のようになります

select UNIX_TIMESTAMP() + 300;
1
Arnel Aves