sql >> データベース >  >> RDS >> Mysql

ミリ秒の精度のタイムスタンプ:MySQLでそれらを保存する方法

    フラクショナルセカンド時間のデータ型で列を宣言するには、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を使用できます。



    1. SQL Serverが実行されているオペレーティングシステムを確認する(T-SQLの例)

    2. SQLiteクエリ結果をタブ区切りリストとして出力

    3. AWSEC2からAWSRDSへのOracleデータベースの移行、パート4

    4. SQL Server(T-SQL)の既存のテーブルに外部キー制約を追加する方法