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

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桁(ナノ秒)が使用される場合、サポートされる最大値はUTCで2262-04-11 23:47:16です。

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

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

挿入とは対照的に、toDateTime64関数はすべての値を小数形式で扱うため、精度は小数点の後に指定する必要があります。

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

関連情報