メインコンテンツまでスキップ
バージョン: 26.x

DATETIME

説明

DATETIME(p) 型は日付と時刻を格納します。ここで、p は精度を表し、p の値の範囲は [0, 6] で、デフォルト値は 0 です。つまり、DATETIME は DATETIME(0) と同等です。

範囲は [0000-01-01 00:00:00.000..., 9999-12-31 23:59:59.999...] で、デフォルトの出力フォーマットは 'yyyy-MM-dd HH:mm:ss.SSS...' です。小数点以下には合計 p 桁があります。例えば、DATETIME(6) の範囲は [0000-01-01 00:00:00.000000, 9999-12-31 23:59:59.999999] です。

Doris はグレゴリオ暦の日付フォーマットを使用し、グレゴリオ暦に存在する日付は Doris に存在する日付と一対一で対応します。ここで、0000 は紀元前1年(BCE 1)を表します。日付がどの日であっても、時刻の範囲は常に ['00:00:00.000...', '23:59:59.999...'] であり、重複する時刻はありません。つまり、うるう秒はありません。

DATETIME 型は主キー、パーティションカラム、またはバケットカラムとして使用できます。DATETIME 型フィールドは実際に Doris で 8 バイトを占有します。DATETIME は実行時に年、月、日、時、分、秒、マイクロ秒で個別に格納されるため、DATETIME カラムに対して months_add 操作を実行することは unix_timestamp よりも効率的です。

他の型を DATETIME に変換する方法と、変換時に受け入れられる入力については、Cast to DATETIME を参照してください。

日付と時刻型は算術演算での数学的演算子の直接使用をサポートしていません。数学的演算を実行する本質は、まず日付と時刻型を数値型に暗黙的に変換してから演算を実行することです。時刻型に対して加算、減算、または丸めを実行する必要がある場合は、DATE_ADDDATE_SUBTIMESTAMPDIFFDATE_TRUNC などの関数の使用を検討してください。

DATETIME 型はタイムゾーンを格納しません。つまり、セッション変数 time_zone の変更は DATETIME 型の格納値に影響しません。

select cast('2020-01-02' as datetime);
+--------------------------------+
| cast('2020-01-02' as datetime) |
+--------------------------------+
| 2020-01-02 00:00:00 |
+--------------------------------+
select cast('2020-01-02' as datetime(6));
+-----------------------------------+
| cast('2020-01-02' as datetime(6)) |
+-----------------------------------+
| 2020-01-02 00:00:00.000000 |
+-----------------------------------+
select cast('0000-12-31 22:21:20.123456' as datetime(4));
+---------------------------------------------------+
| cast('0000-12-31 22:21:20.123456' as datetime(4)) |
+---------------------------------------------------+
| 0000-12-31 22:21:20.1235 |
+---------------------------------------------------+
このページでは