フラクショナルセカンド時間のデータ型で列を宣言するには、MySQLバージョン5.6.4以降である必要があります。あなたが正しいバージョンを持っているかどうかわかりませんか? SELECT NOW(3)
をお試しください 。エラーが発生した場合は、適切なバージョンがありません。
例:DATETIME(3)
タイムスタンプにミリ秒の解像度が与えられ、TIMESTAMP(6)
*nixスタイルのタイムスタンプでマイクロ秒の解像度が得られます。
これを読んでください: https://dev.mysql.com/ doc / refman / 8.0 / en / fractional-seconds.html
NOW(3)
MySQLサーバーのオペレーティングシステムからの現在時刻をミリ秒の精度で提供します。
Unixepoch からのミリ秒数がある場合 、これを試してDATETIME(3)値を取得してください
FROM_UNIXTIME(ms * 0.001)
Javascriptタイムスタンプ たとえば、 Unixepoch からのミリ秒数で表されます。 。
(* 0.001
のようなMySQL内部分数演算に注意してください 、は常にIEEE754倍精度浮動小数点として処理されるため、太陽が白色矮星になる前に精度が失われる可能性はほとんどありません。)
古いバージョンのMySQLを使用していて、1秒未満の時間精度が必要な場合は、アップグレードするのが最善の方法です。それ以外の場合は、厄介な回避策を実行する必要があります。
何らかの理由でアップグレードできない場合は、BIGINT
の使用を検討してください。 またはDOUBLE
Javascriptタイムスタンプを数値であるかのように格納する列。 FROM_UNIXTIME(col * 0.001)
それでも問題なく動作します。このような列に格納する現在の時刻が必要な場合は、UNIX_TIMESTAMP() * 1000
を使用できます。