メインコンテンツまでスキップ
メインコンテンツまでスキップ

Time64

Time64 データ型は、サブ秒精度で時間値を格納することを可能にします。DateTime64 とは異なり、カレンダー日付は含まれず、時間のみを表します。精度は、格納された値の小数秒単位の解像度を定義します。

ティックサイズ(精度):10-precision 秒。有効範囲:[ 0 : 9 ]。 通常は 3 (ミリ秒)、6 (マイクロ秒)、9 (ナノ秒) が使用されます。

構文:

Time64(precision)

内部的に、Time64 は日付の開始からのティックの Int64 数値としてデータを格納します (000:00:00.000000000)。ティック解像度は精度パラメータによって決まります。オプションで、列レベルでタイムゾーンを指定することもでき、これは時間値の解釈とテキスト形式での表示に影響を与えます。

DateTime64 とは異なり、Time64 は日付コンポーネントを格納しないため、時間のみを表します。詳細は Time を参照してください。

サポートされている値の範囲: [000:00:00, 999:59:59.99999999]

  1. Time64 型カラムを持つテーブルを作成し、データを挿入する:
CREATE TABLE t64
(
    `timestamp` Time64(3),
    `event_id` UInt8
)
ENGINE = TinyLog;
-- 時間を解析する
-- - 1970-01-01 からの秒数として解釈される整数から。
-- - 文字列から、
INSERT INTO t64 VALUES (15463123, 1), (154600.123, 2), ('100:00:00', 3);

SELECT * FROM t64;
   ┌─────timestamp─┬─event_id─┐
1. │ 004:17:43.123 │        1 │
2. │ 042:56:40.123 │        2 │
3. │ 100:00:00.000 │        3 │
   └───────────────┴──────────┘
  1. Time64 値でフィルター処理する
SELECT * FROM t64 WHERE timestamp = toTime64('100:00:00', 3);
   ┌─────timestamp─┬─event_id─┐
1. │ 100:00:00.000 │        3 │
   └───────────────┴──────────┘

Time と異なり、Time64 値は自動的に String から変換されません。

SELECT * FROM t64 WHERE timestamp = toTime64(154600.123, 3);
   ┌─────timestamp─┬─event_id─┐
1. │ 042:56:40.123 │        2 │
   └───────────────┴──────────┘

挿入時とは異なり、toTime64 関数はすべての値を10進数版として扱うため、小数点の後に精度を指定する必要があります。

  1. Time64 型値のタイムゾーンを取得する:
SELECT toTime64(now(), 3) AS column, toTypeName(column) AS x;
   ┌────────column─┬─x─────────┐
1. │ 019:14:16.000 │ Time64(3) │
   └───────────────┴───────────┘

参照