TO_CHAR関数 【TO_CHAR function】
概要
TO_CHAR関数(TO_CHAR function)とは、リレーショナルデータベースの問い合わせや操作に使われるSQL文で利用できる関数の一つで、日付/時刻型あるいは数値型の値を文字列に変換するもの。バイナリデータを扱えるシステムもある。基本的な書式は「TO_CHAR(値,フォーマット文字列)」で、指定した値をフォーマット文字列で指定した形式に従って整形し、文字列型の値として返す。値には数値型(整数型や浮動小数点数型、DECIMAL型など)、日付/時刻型(DATE型、TIME型、TIMESTAMP型など)を指定できる。
フォーマット文字列によって、どのような形式の文字列に変換したいかを指示することができる。例えば、日付型に対して「YYYY/MM/DD」というフォーマットを与えれば、「1970/01/01」のような文字列を出力してくれる。
日付/時刻型に使用できる書式としては、「YYYY」(4桁の西暦)、「MM」(2桁の月)、「MONTH」(月名)、「DD」(2桁の日)、「DAY」(曜日)、「HH」または「HH12」(12時制の時)、「HH24」(24時制の時)、「AM/PM」(午前または午後)、「MI」(分)、「SS」(秒)などがある。
数値型のフォーマットは「999.99」のように数値の桁数を「9」の数で指定する。整数部の上位桁や小数部の下位桁が指定の桁数に満たない場合は空白文字(スペース)が挿入されるが、空白ではなく0で埋めたい場合は「00.000」のように9ではなく0で桁数を指定する。
小数点や桁区切り記号は地域によって異なり、「D」で小数点、「G」で桁区切りを挿入する。「.」や「,」で決め打ちすることもできる。正負の符号は「S」、通貨記号(システムのロケール情報を参照)は「L」で表示することができる。
これらのフォーマット文字列はシステムによって一部の書式が異なっていたり、これ以外の書式が用意されていることもある。TO_CHAR関数はOracle DatabaseやPostgreSQLなどで使用できるが、SQL ServerではCONVERT関数を、MySQLではFORMAT関数(数値)、DATE_FORMAT関数(日付)、TIME_FORMAT関数(時刻)を用いる。