A ISO 8601の日付、時刻および継続時間のサポート

国際標準化機構(ISO)の標準8601は、日付、時刻および継続時間を表すために国際的に受け入れられている方法について説明しています。Oracle Databaseでは、適切なOracle SQLの日付、時刻および時間隔(継続時間)の値として最も一般的なISO 8601形式をサポートしています。サポートされている形式は、基本的に数字のみで言語に依存しない明確な形式です。

(Simple Oracle Document Access(SODA)では継続時間はサポートされていません。)

ISOの日付および時刻のためのOracle Databaseの構文

これは、Oracle DatabaseでISOの日付および時刻に対してサポートされている構文です。

  • 日付(のみ): YYYY-MM-DD

  • 日付と時刻: YYYY-MM-DDThh:mm:ss[.s[s[s[s[s[s]]]]][Z|(+|-)hh:mm]

各要素の意味は次のとおりです。

  • YYYYは、4桁の10進数でを指定します。

  • MMは、00から12までの2桁の10進数でを指定します。

  • DDは、00から31までの2桁の10進数でを指定します。

  • hhは、00から23までの2桁の10進数で時間を指定します。

  • mmは、00から59までの2桁の10進数でを指定します。

  • ss[.s[s[s[s[s]]]]]は、00から59までの2桁の10進数でを指定します。オプションで、小数点を1から6桁の10進数で追加します(秒の端数部分を表します)。

  • Zは、UTC時間(タイムゾーン0)を指定します。(–00:00ではなく、+00:00で指定することもできます。)

  • (+|-)hh:mmは、UTCとの差異でとタイムゾーンを指定します。(+またはのいずれか1つを指定する必要があります。)

時間の値の場合、タイムゾーン部分はオプションです。これが指定されていない場合、UTC時間が使用されます。

他のISO 8601の日時構文はサポートされていません。具体的には、次のとおりです。

  • ハイフンで始まるマイナスの日付(例: 2018–10–26T21:32:52) (BCE1年より前の日付)はサポートされていません。

  • ハイフンおよびコロンの区切り文字が必要です。いわゆる基本形式YYYYMMDDThhmmssはサポートされていません。

  • 序数の日付(年と通算日、カレンダ週と曜日番号)はサポートされていません。

  • 年に4桁より大きい桁数を使用することは、サポートされていません。

サポートされている日付および時間は、次のとおりです。

  • 2018–10–26T21:32:52

  • 2018-10-26T21:32:52+02:00

  • 2018-10-26T19:32:52Z

  • 2018-10-26T19:32:52+00:00

  • 2018-10-26T21:32:52.12679

サポートされていない日付と時間は、次のとおりです。

  • 2018-10-26T21:32 (時間が指定された場合、そのすべての部分が存在する必要があります)

  • 2018-10-26T25:32:52+02:00 (時間部分は25で、範囲外です)

  • 18-10-26T21:32 (年がすべて指定されていません)

ISOの継続時間のためのOracle Databaseの構文

ノート:

Oracle DatabaseではISOの継続時間がサポートされていますが、Simple Oracle Document Access (SODA)ではサポートされていません。

ISOの継続時間に対しては2つのOracle Databaseの構文がサポートされています。SQLファンクションto_dsintervalに指定されるds_iso_formatと、SQLファンクションto_ymintervalに指定されるym_iso_formatがあります。(to_dsintervalはSQL型INTERVAL DAY TO SECONDのインスタンスを返し、to_ymintervalINTERVAL YEAR TO MONTH型インスタンスを返します。)

これらの形式は、OracleによってJSON言語に追加されたdaysecondIntervalおよびyearmonthIntervalデータ型にそれぞれ使用されます。

  • ds_iso_format:

    PdDThHmMsS。ここで、dhmおよびsは、それぞれ日、時間、分および秒の数字です。たとえば、"P0DT06H23M34S"などです。

    sには、整数部の数字とそれに続く小数点および小数部の数字を指定することもできます。たとえば、P1DT6H23M3.141593Sなどです。

    値がゼロの数字は、その指定子とともに省略されます。たとえば、"PT3M3.141593S"などです。ただし、すべての数字がゼロ値である場合、構文は"P0D"になります。

  • ym_iso_format

    PyYmM。ここで、yは年の数字、およびmは月の数字です。たとえば、"P7Y8M"などです。

    年または月がゼロの場合は、それと指定子が省略されます。たとえば、"P7Y""P8M"などです。ただし、年と月がゼロの場合、構文は"P0Y"になります。