ユリウス日 (J 形式)
ユリウス日付形式を使用すると、1840 年 12 月 31 日より前の日付を表すことができます。この形式を使用するには、TO_DATE の format 引数を 'J' または 'j' に指定します。この形式を使用して、7 桁の内部数値 (ユリウス日のカウント) を形式設定済みの日付に変換できます。例えば、以下の文は、論理形式または ODBC 形式では 1585–01–31 を、表示形式では 01/31/1585 をそれぞれ返します。
SELECT TO_DATE(2300000,'J')
ユリウス日のカウント値 1721424 は、ユリウス暦の 1 年 1 月 1 日 (1–01–01) を返します。ユリウス日のカウント値がこの値より小さい場合は、BCE (紀元前) の日付が返されます。これは、年の前にマイナス記号を付けて表示されます。
既定では、%DateOpens in a new tab データ型は 1840 年 12 月 31 日より前の日付を表しません。ただし、このデータ型の MINIVAL パラメータを再定義すると、それより前の日付を西暦 1 年 1 月 1 日まで、負の整数として表すことができます。この負の整数による日付の表記には、ここで説明するユリウス日付形式とは互換性がありません。詳細は、"データ型" を参照してください。
ユリウス日のカウントは常に内部的に 7 桁の数で表記され、必要に応じて先頭にゼロが付きます。TO_DATE では、先頭にゼロを付けずにユリウス日のカウントを入力できます。許可されている最大のユリウス日付は 5373484 で、12/31/9999 を返します。許可されている最小のユリウス日付は 0000001 で、01/01/-4712 (BCE 4713 年 1 月 1 日) を返します。値がこの範囲外の場合には、SQLCODE -400 エラーが生成されます。
1721424 (1/1/1) より前のユリウス日のカウントには、Oracle など、他のソフトウェア実装と互換性があります。このカウントは、通常の用法における BCE 日付と同一ではありません。通常の用法では、0 年は存在せず、日付の範囲は 12/31/-1 から 1/1/1 になります。Oracle の用法では、1721058 から 1721423 までのユリウス日は単純に無効となり、エラーが返されます。InterSystems IRIS では、ユリウス日がこの範囲内にあると、存在しない 0 年がプレースホルダとして返されます。したがって、BCE 日付を使用する計算は、1 年調整して通常の用法に対応させる必要があります。これは、TO_CHAR および TO_DATE の使用による日付とユリウス日のカウントの相互変換に影響を与えることはありませんが、ユリウス日のカウントを使用して行う計算の一部に影響が及ぶ場合があります。また、これらの日付のカウントでは、グレゴリオ暦の導入による日付の変更が考慮されないことに注意してください。
TO_DATE では、ユリウス日のカウントに対応する日付式を返すことができます。TO_CHAR では、以下の例のように、日付式に対応するユリウス日のカウントを返すことができます。
SELECT
TO_CHAR('1776-07-04','J') AS JulianCount, -- 2369916
TO_DATE(2369916,'J') AS JulianDate -- 1776-07-04