DATEデータ型は日付と時刻の情報を格納します。本記事では、DATEデータ型の構文、パラメータ、および使用方法について説明します。
構文
DATE データ型のデフォルトの入力出力形式は NLS_DATE_FORMAT によって決定されます。デフォルトの形式を確認するには、次のSQLステートメントを実行します:
SELECT @@NLS_DATE_FORMAT FROM DUAL;
実行結果は次のとおりです:
DD-MON-RR
データの形式をカスタマイズする必要がある場合は、変換関数を使用できます。データを挿入する際には、関数TO_DATE (char,fmt) を使用してデータの入力形式を指定できます。データをクエリする際には、関数TO_CHAR (datetime,fmt) を使用してデータの出力形式を指定できます。これら2つの変換関数は、文字列をパラメータ fmt で定義された形式に変換します。fmt が指定されていない場合は、デフォルトの形式が使用されます。
注意
DATE データ型は時間情報(時間、分、秒など)を格納しますが、デフォルトの形式には時間情報は含まれていません。
使用方法
日付と時刻の情報は、文字列や数値データ型で表現できますが、DATE データ型には特別な関連属性があります。各 DATE 値について、OceanBaseデータベースは以下の情報を格納します:年、月、日、時間、分、秒ですが、タイムゾーン情報は含まれません。値の範囲は 0001-01-01 00:00:00~9999-12-31 23:59:59 です。 DATE リテラルが指定されていない場合、データベースはシステムのデフォルト値を返します:
年:現在の年号。
SYSDATEによって返されます。月:現在の月。
SYSDATEによって返されます。日:01。デフォルトでは現在の月の1日目です。
時間、分、秒はすべて0です。
例
現在のシステム日付を返します。パラメータ
fmtが指定されていないため、TO_CHARはデータ型のデフォルト形式でデータを返します。obclient> SELECT TO_CHAR(sysdate) FROM DUAL; +------------------+ | TO_CHAR(SYSDATE) | +------------------+ | 27-OCT-21 | +------------------+ 1 row in setTO_DATE(string, format)を使用して日付データを挿入します。TO_DATEはstringの文字列をformatで定義された形式に変換します。obclient> SELECT TO_CHAR(TO_DATE('2020', 'YYYY'),'YYYY-MM-DD HH24:MI:SS') FROM DUAL; +--------------------------------------------------------+ | TO_CHAR(TO_DATE('2020','YYYY'),'YYYY-MM-DDHH24:MI:SS') | +--------------------------------------------------------+ | 2020-10-01 00:00:00 | +--------------------------------------------------------+ 1 row in set