日時定数

日時定数 は特定の形式の 文字ストリング定数です。

文字列定数に関する詳細は、「定数」 を参照してください。

有効な文字列形式に関する情報は、「datetime 値の文字列表現」 を参照してください。

通常、文字ストリング定数は、割り当ておよび比較で一定の日時値を表すために使用されます。 ただし、ANSI/ISO SQL 標準形式の日時定数を使用して、定数が文字ストリング定数ではなく日時定数であることを特別に示すことができます。 ANSI/ISO SQL 標準日時定数のフォーマットは次のようになります。

DATE 文字列定数
string-constant に含まれる値は、日付のストリング表現として有効ないずれかのフォーマットに準拠し、以下の規則に従う必要があります。
  • 先行ブランクは使用できません。
  • 先行ゼロは、日付を構成する月および日の各エレメントから省略できます。 省略されている桁に対しては、暗黙的な 0 の指定が想定されます。
  • 日付を構成する年のエレメントには、先行ゼロを含める必要があります。
  • 末尾ブランクを含めることができます。

値のデータ・タイプは DATE です。

TIME 文字列定数
string-constant に含まれる値は、時刻のストリング表現として有効ないずれかのフォーマットに準拠し、以下の規則に従う必要があります。
  • 先行ブランクは使用できません。
  • 先行ゼロは、時刻を構成する時のエレメントから省略できます。
  • 時刻を構成する秒のエレメントは省略できます。
  • 末尾ブランクを含めることができます。
  • USA 形式が使用されず、分と秒がすべてゼロの場合、時を 24 にできます。
  • USA 形式の場合には、以下の追加の規則が適用されます。
    • 時刻を構成する分のエレメントは省略できます。 例えば、1 PM は、1:00 PM と同じです。
    • A、M、および P の文字は小文字で指定しても構いません。
    • AM または PM の前には、ブランクを 1 つ空けなければなりません。
    • 時が 12 を超えてはなりません。また、時が 00:00 AM として指定される場合を除き、0 にすることもできません。

省略されている桁に対しては、暗黙的な 0 の指定が想定されます。

USA 形式と ISO 形式 (24 時間クロック) は、以下のように対応します。

  • 12:01 AM から 12:59 AM は、00.01.00 から 00.59.00 に相当します。
  • 01:00 AM から 11:59 AM は、01.00.00 から 11.59.00 に相当します。
  • 12: 00 PM (正午) から 11:59 PM は、12.00.00 から 23.59.00 に相当します。
  • 12:00 AM (真夜中) は 24.00.00 に相当します。
  • 00:00 AM (真夜中) は 00.00.00 に相当します。

値のデータ・タイプは TIME です。

TIMESTAMP 文字列定数
string-constant に含まれる値は、次の表にリストされたいずれかのフォーマットに準拠し、以下に示す規則に従う必要があります。
  • 先行ブランクは使用できません。
  • 末尾ブランクを含めることができます。
  • タイム・スタンプの、月、日、時、およびタイム・ゾーンの時間の各エレメントから、先行ゼロを省略できます。 省略されている桁に対しては、暗黙的な 0 の指定が想定されます。
  • タイム・スタンプの分、秒、およびタイム・ゾーンの分の各エレメントの場合、必ず先行ゼロを含めなければなりません。
  • 時を 24 にすることができるのは、分、秒、および端数秒がすべてゼロである場合です。
  • 秒エレメントの後の区切り文字は、端数秒が含まれない場合は省略できます。
  • 端数秒の桁数は、0 から 12 までの範囲で変わります。 端数秒が省略されている場合、暗黙的な 0 の指定が想定されます。 端数秒の桁数により、タイム・スタンプ値の精度が決まります。
  • 時刻エレメントとタイム・ゾーン・エレメントの間にオプションで 1 個のブランクを含めることができます。
  • 以下のいずれかの形式で、オプションのタイム・ゾーンを含めることができます。
    • ±th:tm (値は -24:00 から +24:00 までの範囲) 値 -0:00 は、+0:00 と同じように扱われます。
    • ±th (値は -24 から +24 までの範囲。タイムゾーンの分エレメントとしては暗黙的に 00 が指定されたと想定されます。)
    • 大文字の Z は UTC を指定します。

値のデータ・タイプは、以下のように、ストリング定数の内容によって異なります (p は定数内の端数秒の桁数)。

  • TIMESTAMP(p) WITHOUT TIME ZONE 文字列定数の内容が表1の表の規則に準拠している場合。
  • TIMESTAMP(p) WITH TIME ZONE 文字列定数の内容が表2の表の規則に準拠している場合。
表 1. TIMESTAMP WITHOUT TIME ZONE のデータ・タイプの値の指定に使用されるフォーマット
説明 タイムスタンプ(0) タイムゾーンなし 1 , 3 TIMESTAMP( p ) タイムゾーンなし 2 , 3
日付部分と時刻部分の間にブランク、時刻部分にコロン。
  • yyyy-mm-dd hh:mm:ss
  • yyyy-mm-dd hh:mm:ss.
yyyy-mm-dd
hh:mm:ss.nnnnnnnnnnnn
日付部分と時刻部分の間にブランク、時刻部分にピリオド。
  • yyyy-mm-dd hh.mm.ss
  • yyyy-mm-dd hh.mm.ss.
yyyy-mm-dd
hh.mm.ss.nnnnnnnnnnnn
日付と時刻の部分の間のマイナス記号と時間の部分のコロン。
  • yyyy-mm-dd-hh:mm:ss
  • yyyy-mm-dd-hh:mm:ss.
yyyy-mm-dd-
hh:mm:ss.nnnnnnnnnnnn
日付部分と時刻部分の間に負符号、時刻部分にピリオド。
  • yyyy-mm-dd-hh.mm.ss
  • yyyy-mm-dd-hh.mm.ss.
yyyy-mm-dd-
hh.mm.ss.nnnnnnnnnnnn
注:
  1. 端数秒なし。秒の後のオプションの末尾ピリオド付き、およびピリオドなしで表示
  2. p は端数秒の桁数。 nnnnnnnnnnnn は、n の 1 から 12 個のインスタンスの範囲で指定できます。
  3. 追加フォーマットとして、値の日付部分と時刻部分の間の区切り文字として文字 T を代用することができます。
表 2. TIMESTAMP WITH TIME ZONE のデータ・タイプの値の指定に使用されるフォーマット
説明 タイムゾーン 1、3タイムスタンプ(0) TIMESTAMP( p ) タイムゾーン 2、3
日付部分と時刻部分の間にブランク、時刻部分にコロン、時間とタイム・ゾーンの間にスペースなし。
  • yyyy-mm-dd hh:mm:ss±th:tm
  • yyyy-mm-dd hh:mm:ss±th
  • yyyy-mm-dd hh:mm:ss.±th:tm
  • yyyy-mm-dd hh:mm:ss.±th
  • yyyy-mm-dd
    hh:mm:ss.nnnnnnnnnnnn
    ±th:tm
  • yyyy-mm-dd
    hh:mm:ss.nnnnnnnnnnnn
    ±th
日付と時刻の部分の間のマイナス記号と時間の部分のコロン。
  • yyyy-mm-dd-hh:mm:ss±th:tm
  • yyyy-mm-dd-hh:mm:ss±th
  • yyyy-mm-dd-hh:mm:ss.±th:tm
  • yyyy-mm-dd-hh:mm:ss.±th
  • yyyy-mm-dd-
    hh:mm:ss.nnnnnnnnnnnn
    ±th:tm
  • yyyy-mm-dd-
    hh:mm:ss.nnnnnnnnnnnn
    ±th
日付部分と時刻部分の間に負符号、時刻部分にピリオド。
  • yyyy-mm-dd-hh.mm.ss±th:tm
  • yyyy-mm-dd-hh.mm.ss±th
  • yyyy-mm-dd-hh.mm.ss.±th:tm
  • yyyy-mm-dd-hh.mm.ss.±th
  • yyyy-mm-dd-
    hh.mm.ss.nnnnnnnnnnnn
    ±th:tm
  • yyyy-mm-dd-
    hh.mm.ss.nnnnnnnnnnnn
    ±th
日付部分と時刻部分の間にブランク、時刻部分にコロン、端数秒とタイム・ゾーンの符号の間にブランク。
  • yyyy-mm-dd hh:mm:ss ±th:tm
  • yyyy-mm-dd hh:mm:ss ±th
  • yyyy-mm-dd hh:mm:ss. ±th:tm
  • yyyy-mm-dd hh:mm:ss. ±th
  • yyyy-mm-dd
    hh:mm:ss.nnnnnnnnnnnn
    ±th:tm
  • yyyy-mm-dd
    hh:mm:ss.nnnnnnnnnnnn
    ±th
日付部分と時刻部分の間にブランク、時刻部分にピリオド。
  • yyyy-mm-dd hh.mm.ss±th:tm
  • yyyy-mm-dd hh.mm.ss±th
  • yyyy-mm-dd hh.mm.ss.±th:tm
  • yyyy-mm-dd hh.mm.ss.±th
  • yyyy-mm-dd
    hh.mm.ss.nnnnnnnnnnnn
    ±th:tm
  • yyyy-mm-dd
    hh.mm.ss.nnnnnnnnnnnn
    ±th
注:
  1. 端数秒なし。秒の後のオプションの末尾ピリオド付き、およびピリオドなしで表示
  2. p は端数秒の桁数。 nnnnnnnnnnnn は、n の 1 から 12 個のインスタンスの範囲で指定できます。
  3. 追加フォーマットとして、値の日付部分と時刻部分の間の区切り文字として文字 T を代用することができます。