[解決済み] ミリ秒精度のタイムスタンプ。MySQLで保存する方法
質問
MySQLを使用してアプリケーションを開発しなければなりませんが、タイムスタンプを表す "1412792828893"のような値を、ミリ秒の精度で保存する必要があります。つまり、1970年1月1日からのミリ秒の長さです。行を次のように宣言します。
timestamp
としているが、残念ながらこれはうまくいかなかった。すべての値を
0000-00-00 00:00:00
CREATE TABLE IF NOT EXISTS `probability` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`segment_id` int(11) NOT NULL,
`probability` float NOT NULL,
`measured_at` timestamp NOT NULL,
`provider_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ;
この精度でタイムスタンプ値を保存できるようにするには、どのように宣言すればよいでしょうか。
どのように解決するのですか?
秒単位のデータ型を持つカラムを宣言するには、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サーバのオペレーティングシステムからミリ秒の精度で現在時刻を提供します。
からのミリ秒の数値がある場合、MySQL サーバはその時刻を表示します。 Unixエポック であれば、DATETIME(3) の値を取得するために次のようにしてみてください。
FROM_UNIXTIME(ms * 0.001)
Javascriptのタイムスタンプ からのミリ秒単位で表されます。 Unix エポック .
(MySQL内部で分数演算を行うことに注目し、例えば
* 0.001
のような MySQL 内部の端数演算は常に IEEE754 倍精度浮動小数点として処理されるので、太陽が白色矮星になる前に精度が失われることはまずありません)。
古いバージョンの MySQL を使用していて、サブセカンドの時間精度が必要な場合、アップグレードするのが最善の方法です。 それ以外の方法では、厄介な回避策を講じることを余儀なくされるでしょう。
もし、何らかの理由でアップグレードできない場合は
BIGINT
または
DOUBLE
カラムを使用して、Javascript のタイムスタンプを数値のように格納することができます。
FROM_UNIXTIME(col * 0.001)
でも問題なく動作します。もし、このようなカラムに現在時刻を格納する必要がある場合は
UNIX_TIMESTAMP() * 1000
関連
-
[解決済み] ユニークなテーブル/エイリアスではない
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] MySQLのAUTO_INCREMENTをリセットする方法
-
[解決済み] MySQLでコマンドラインを使用してユーザーアカウントのリストを取得するにはどうすればよいですか?
-
[解決済み] MySQLのクエリ結果をCSV形式で出力するにはどうすればよいですか?
-
[解決済み] MySQL で特定のカラム名を持つすべてのテーブルを見つけるにはどうすればよいですか?
-
[解決済み] Git で古いコミットのタイムスタンプを変更するにはどうしたらいいですか?
-
[解決済み】MySQLのDatetimeカラムにデフォルト値を設定する方法とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
mysqlでインデックスに障害が発生する原因は何ですか?
-
MySQLにおけるorder byの使用方法の詳細
-
MySQLデータ型の詳細
-
SpringBootのMySQLへの接続は、バックエンドのインターフェイスの操作方法を書き込むためのデータを取得するために
-
MysqlからElasticsearchにデータを同期させる方法を説明します。
-
mysql5.7のインストールと、無料・長期利用を目的としたNavicateの導入プロセスについて
-
Mysql がエラー 1241 を報告 オペランドは 1 つのカラムを含む必要があります。
-
Mysqlデータベースへのリンク時にpymysqlがConnection refusedエラーを報告する
-
[解決済み] どのトランザクションが「テーブルメタデータのロック待ち」状態を引き起こしているかを確認するにはどうすればよいですか?
-
[解決済み] ユーザー 'root'@'localhost' (パスワード: YES を使用) のアクセス拒否 - 特権がない?