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

DateTime64

カレンダーの日付と日の時間として表現できる瞬間を、定義されたサブセコンドの精度で保存することを許可します。

ティックサイズ(精度):10-precision 秒。有効範囲:[ 0 : 9 ]。一般的に使用されるのは、3(ミリ秒)、6(マイクロ秒)、9(ナノ秒)です。

構文:

内部的には、1970-01-01 00:00:00 UTC からのティック数を Int64 として保存します。ティックの解像度は精度パラメータによって決まります。さらに、DateTime64 型は、列全体に対して同じタイムゾーンを保存でき、これにより DateTime64 型の値がテキスト形式でどのように表示されるか、文字列として指定された値がどのように解析されるか('2020-01-01 05:00:01.000')に影響します。タイムゾーンはテーブルの行(または結果セット)には保存されませんが、列のメタデータには保存されます。詳細は DateTime を参照してください。

サポートされている値の範囲:[1900-01-01 00:00:00, 2299-12-31 23:59:59.99999999]

注意:最大値の精度は8です。最大精度9桁(ナノ秒)が使用される場合、サポートされる最大値は 2262-04-11 23:47:16 UTC です。

  1. DateTime64 型のカラムを持つテーブルを作成し、データを挿入する:
  • 整数として日時を挿入する際には、適切にスケーリングされたUnix タイムスタンプ(UTC)として扱われます。1546300800000(精度3)は '2019-01-01 00:00:00' UTC を表します。しかし、timestamp カラムは Asia/Istanbul(UTC+3)のタイムゾーンを指定しているため、文字列として出力される際には値は '2019-01-01 03:00:00' と表示されます。小数点を持つ日時を挿入する際は、整数と同様に扱われますが、小数点前の値が秒まで含むUnix タイムスタンプとなり、小数点以下は精度として扱われます。
  • 文字列値を日時として挿入する際には、カラムのタイムゾーンであるとみなされます。'2019-01-01 00:00:00'Asia/Istanbul タイムゾーンにあるとみなされ、1546290000000 として保存されます。
  1. DateTime64 値に対するフィルタリング

DateTime とは異なり、DateTime64 値は自動的に String から変換されることはありません。

挿入とは逆に、toDateTime64 関数はすべての値を小数点の変種として扱うため、精度は小数点以下で指定する必要があります。

  1. DateTime64 型の値のタイムゾーンを取得する:
  1. タイムゾーンの変換

参照