web-dev-qa-db-ja.com

テーブルの2つの列間の時間差を差し引く

問題:2つのセンサー(下の例ではセンサー1とセンサー2)間のTIMEDIFFを減算して、mili秒?

enter image description here

ミリ秒の分解能でどのように取得できますか?

以下のコマンドラインを使用して、ミリ秒単位の解像度でテーブルを作成しようとしていますが、エラーが返されます。

CREATE TABLE via1 
(
    id int auto_increment primary key, 
    sensor VARCHAR (10) NOT NULL, 
    date timestamp(6) default current_timestamp(6)
);

エラー1064(42000):SQL構文にエラーがあります。 MySQLサーバーのバージョンに対応するマニュアルで、1行目の「(6)default current_timestamp(6))」の近くで使用する正しい構文を確認してください

サーバーのバージョン:5.5.44-0 + deb7u1(Debian)

4
will

2つの行の違いだけを探している場合は、IDでそれらを参照できます。

SELECT
  TIMESTAMPDIFF(MICROSECOND, s1.date, s2.date) DIV 1000
FROM 
  via1 s1
  , via1 s2 
WHERE 
  s1.id = 1
  AND
  s2.id = 2
;

CREATE TABLEステートメントにいくつかのエラーがあります:

CREATE TABLE via1 (
  id int auto_increment primary key, 
  sensor varchar(10) NOT NULL, 
  date timestamp(6) default current_timestamp(6)
);

古いバージョンのMySQL(5.5.44)を使用しています。ドキュメントから:

11.3.6時間値の小数秒 -MySQL 5.6リファレンスマニュアル

MySQL 5.6.4より前のインスタンスは、時間値で小数秒の部分が許可されている場合に制限されています。 ... MySQLが一時データ型の列に値を格納するとき、小数部分は破棄され、格納されません。

1
sheepdog