説明
この関数は、日付時刻型の値を VARCHAR 型データに変換するために使用します。
説明
OceanBase データベース V4.3.5 では、この関数は V4.3.5 BP1 からサポートされています。
構文宣言
TO_CHAR(datetime [, fmt])
パラメータの説明
datetime:変換対象の日付時刻型データを表します。fmt:オプションです。出力形式を指定するために使用します。パラメータfmtを指定しない場合、パラメータdatetimeの形式でVARCHARデータ型に変換されます。詳細は後述の fmt を参照してください。
fmt
fmt パラメータの書式と値は以下のとおりです:
書式 |
説明 |
|---|---|
-、/、,、.、;、: および "text" |
時間の区切り文字を表します。標準のもの以外に、文字を区切り文字として使用することも許可されています。例えば TO_CHAR(SYSDATE(), 'YYYY "年" mm "月" dd "日"') などがあります。 |
AD/A.D. |
公元を表します。NLS に応じて、西暦や AD などに変換されます。 |
AM/A.M. |
午前を表します。PM/P.M. と同様に、午前または午後の識別子を返します。 |
BC/B.C. |
紀元前を表します。 |
CC/SCC |
世紀を返します。アラビア数字で表されます。年の下2桁が01から99の範囲にある場合は、最初の2桁に1を加えて返し、それ以外の場合は最初の2桁を返します。 |
D |
1週間のうちの曜日を返します。返されるのは1から7の番号です。 |
DAY |
1週間のうちの曜日を返しますが、返されるのは曜日名です。
説明この書式は言語設定に関連しています。中国環境では |
DD |
月のうちの日付(1から31)を返します。 |
DDD |
年のうちの日付(1から366)を返します。 |
DL |
長い日付形式を返します。NLS_TERRITORY、NLS_LANGUAGE パラメータによって制御されます。 |
DS |
短い日付形式を返します。NLS_TERRITORY、NLS_LANGUAGE パラメータによって制御されます。 |
E |
紀元の略称を表しますが、以下のカレンダーにのみ適用されます:日本皇室、中華民国、タイ仏暦。 |
FF [1..9] |
ミリ秒です。数字を指定しない場合は、デフォルトの精度が使用されます。TIMESTAMP 型でのみ使用できます。 |
FM |
何も返しません。 |
HH/HH12 |
時間を表します。12時間制(1から12)です。 |
HH24 |
時を表し、24時間制です(0 ~ 23)。 |
IW |
ISO標準の週番号(1 ~ 52または1 ~ 53)。 |
IYYY、IYY、IY、I |
ISO年を返します(4文字)。4、3、2、1桁の数字(逆順)。 |
J |
ユリウス日を表します(主に天文学で使われる暦)。紀元前4712年1月1日から数えます。結果は整数で、アルゴリズムは大まかに次のとおりです:(西暦日付 + 4712)*ユリウス暦の年平均日数。 |
MI |
分を返します(0 ~ 59)。 |
MM |
月を2文字で返します(01 ~ 12)。 |
MON |
月の略称を返します。国によって異なります。NLS_DATE_LANGUAGEに依存します。例えば、中国語環境では04は4を表します。 |
MONTH |
月の名前を返します。国によって異なります。NLS_DATE_LANGUAGEに依存します。例えば、中国語環境では04は4月を表します。 |
PM/P.M. |
午後を表します。AM/A.M.と同様に、午前または午後の識別子を返します。 |
Q |
四半期を返します(1 ~ 4)。 |
RR |
年の末尾2文字を返します。 |
SS |
秒を返します(0 ~ 59)。1分以内の範囲です。 |
SSSSS |
1日のうち、真夜中からの累積秒数を返します(0 ~ 86399)。 |
SYYYY |
四文字の年です。Sプレフィックスは紀元前を表します(BC)。 |
TZD |
夏時間情報です。タイムゾーンの略称に夏時間情報を加えたもので、フォーマットTZRで設定されたタイムゾーンと対応している必要があります。以下の3つ、TZH、TZM、TZRはすべてタイムゾーンに関連していますが、TO_CHARで直接使用するものではありません。 |
TZH |
タイムゾーン内の時です。例:hh:mi:ss_fftzh:tzm。 |
TZM |
タイムゾーン内の分です。 |
TZR |
タイムゾーン内の地域情報です。データベースでサポートされているタイムゾーンである必要があります。例:US/Pacific。 |
WW |
週の番号を表します。年の最初の日から年の最後の7日目までを数えます(1 ~ 53)。例えば、2008-01-01 から 2008-01-07 は1、2008-01-09 から 2008-01-13 は2となります。 |
W |
1か月間の曜日の番号を表します。 |
X |
ローカルルート記号を表します。特別な用途はなく、TIMESTAMP型と併用して使用できます。 |
Y,YYY |
4文字の年を返します。英字のカンマで区切ります。例:2,008。 |
YYYY、YYY、YY、Y |
次の4、3、2、1桁の数字で表される年を返します。例:2008はそれぞれ2008、008、08、8となります。 |
戻り値の種類
VARCHAR型のデータを返します。datetime値がNULLの場合、NULLを返します。
例
SELECT
TO_CHAR(SYSDATE()),
TO_CHAR(SYSDATE(), 'YYYY/MM/DD HH24:MI:SS AM'),
TO_CHAR(SYSDATE(), 'DS HH:MI:SS PM'),
TO_CHAR(SYSDATE(), 'Month'),
TO_CHAR(NULL, 'HH:MI:SS');
実行結果は次のとおりです:
+---------------------+------------------------------------------------+--------------------------------------+-----------------------------+---------------------------+
| TO_CHAR(SYSDATE()) | TO_CHAR(SYSDATE(), 'YYYY/MM/DD HH24:MI:SS AM') | TO_CHAR(SYSDATE(), 'DS HH:MI:SS PM') | TO_CHAR(SYSDATE(), 'Month') | TO_CHAR(NULL, 'HH:MI:SS') |
+---------------------+------------------------------------------------+--------------------------------------+-----------------------------+---------------------------+
| 2025-03-04 09:38:56 | 2025/03/04 09:38:56 AM | 3/4/2025 09:38:56 AM | March | NULL |
+---------------------+------------------------------------------------+--------------------------------------+-----------------------------+---------------------------+
1 row in set