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 データ型には特殊な関連属性があります。OceanBaseデータベースは、各 DATE 値について、年、月、日、時、分、秒の情報を格納しますが、タイムゾーン情報は含まれません。値の範囲は 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