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

時間

Time データ型は、カレンダーの日付に依存せずに時間値を保存するために使用されます。これは、日々のスケジュール、イベントの時間、または時間コンポーネント(時間、分、秒)のみが重要な状況を表現するのに最適です。

構文:

Time()

サポートされる値の範囲: [-999:59:59, 999:59:59]。

解像度: 1秒。

スピード

Date データ型は、ほとんど の条件下で Time よりも速いです。しかし、Time データ型は DateTime データ型とほぼ同じ速度です。

実装の詳細により、Time および DateTime 型は4バイトのストレージを必要とし、Date は2バイトを必要とします。ただし、データベースが圧縮されると、この違いは増幅されます。

使用上の注意

時点は、タイムゾーンや夏時間に関係なく、Unix タイムスタンプとして保存されます。

注意: Time データ型はタイムゾーンを考慮しません。それは、日付や地域のオフセットのコンテキストなしに、単独で時刻値を表します。Time カラムにタイムゾーンを適用または変更しようとする試みは、影響を及ぼさず、サポートされていません。

1. Time 型のカラムを持つテーブルを作成し、データを挿入します:

CREATE TABLE dt
(
    `time` Time,
    `event_id` UInt8
)
ENGINE = TinyLog;
-- 時間の解析
-- - 文字列から、
-- - 1970-01-01 からの秒数として解釈された整数から。
INSERT INTO dt VALUES ('100:00:00', 1), (12453, 3);

SELECT * FROM dt;
   ┌──────time─┬─event_id─┐
1. │ 100:00:00 │        1 │
2. │ 003:27:33 │        3 │
   └───────────┴──────────┘

2. Time 値でフィルタリング

SELECT * FROM dt WHERE time = toTime('100:00:00')
   ┌──────time─┬─event_id─┐
1. │ 100:00:00 │        1 │
   └───────────┴──────────┘

Time カラムの値は、WHERE 節で文字列値を使用してフィルタリングできます。自動的に Time に変換されます:

SELECT * FROM dt WHERE time = '100:00:00'
   ┌──────time─┬─event_id─┐
1. │ 100:00:00 │        1 │
   └───────────┴──────────┘

3. Time 型のカラムのタイムゾーンを取得する:

SELECT toTime(now()) AS column, toTypeName(column) AS x
   ┌────column─┬─x────┐
1. │ 018:55:15 │ Time │
   └───────────┴──────┘

関連項目