文字列関数ではマルチバイトの文字列がサポートされます。(ただし、CASE(文字列)はマルチバイト文字列を
サポートしないことに注意してください。
CASE(文字列)キーワードは、文字列データがシングルバイトの ASCII であることを前提としています。
「CASE(文字列)」 を参照してください)。
string と示される引数には、列の名前、文字列リテラル、または別のスカラー関数の結果を指定できます。
|
|
|
string の一番左の文字の数値を返します。値は、データベース コード ページ内の文字の位置です。UNICODE 関数も参照してください。
|
|
|
|
code 引数により選択されるデータベース コード ページの文字に対応する、単一文字の文字列を返します。引数は整数値でなければなりません。NCHAR 関数も参照してください。
|
|
string 内のバイト数を返します。CHAR および NCHAR string では、すべての埋め込みが意味を持ちます。
|
|
string 内の文字数を返します。CHAR および NCHAR string では、すべての埋め込みが意味を持ちます。データにダブルバイト文字が含まれている場合は、文字列のサイズより小さい値が返されることがあります。
|
|
|
CONCAT (string1, string2)
|
string2 を string1 に連結した結果の文字列を返します。
|
|
|
|
string の大文字がすべて小文字に変換された文字列を返します。
|
|
string の左端から count 分の文字を返します。 count の値は整数です。
|
|
string 内の文字数を返します。VARCHAR、NVARCHAR、LONGVARCHAR、または NLONGVARCHAR の string の場合、後続の空白はカウントされます。CHAR、NCHAR、LONGVARCHAR、または NLONGVARCHAR の string の場合、後続のヌルはカウントされます。 string の終端文字はカウントされません。ANSI_PADDING = OFF の場合、後続のヌルは後続の空白と同様に扱われ、CHAR 列では長さにカウントされません。
|
LOCATE (string1, string2[, start])
|
string2 の中で string1 が最初に現れる位置を返します。 string2 内での検索は、開始位置( start)が指定されていなければ、先頭の文字位置から始めます。検索は指定された開始位置から始まります。 string2 の先頭文字位置は 1 です。 string1 が見つからない場合は、値 0 が返されます。
|
|
string から先頭の空白を除いた文字を返します。CHAR および NCHAR string では、すべての埋め込みが意味を持ちます。
|
|
code 引数で指定される Unicode コードポイント値に対応する、単一文字のワイド文字列を返します。引数は整数値でなければなりません。CHAR 関数も参照してください。
|
|
string の長さを 8 進数(バイト数)で返します。CHAR および NCHAR string では、すべての埋め込みが意味を持ちます。
|
POSITION (string1, string2)
|
string2 の中にある string1 の位置を返します。 string1 が string2 内に存在しない場合は、ゼロが返されます。
|
REPLACE (string1, string2, string3)
|
string1 を検索して string2 が現れる箇所を探し、それをすべて string3 に置き換えます。その結果が返されます。文字列が現れなかった場合は、 string1 が返されます。
|
REPLICATE (string, count)
|
string を count の回数だけ繰り返して構成した string を返します。 count の値は整数です。
|
|
文字の並びが反転された string を返します。文字列型の先頭のスペースは末尾のスペースとは異なり、意味のあるものと見なされることに注意してください。 例を参照してください。
|
|
string の右端から count 分の文字を返します。 count の値は整数です。
|
|
string から後続の空白を除いた文字列を返します。ANSI_PADDING = OFF の場合、後続のヌルは後続の空白と同様に扱われ、CHAR 列の値から除かれます。
|
|
|
|
count で示された数の空白から成る string を返します。
|
STUFF (string1, start, length, string2)
|
string1 の start 位置から length で示された数だけの文字を string2 で置き換えた結果得られる 文字列を返します。 start と length は整数です。
|
SUBSTRING (string1, start, length)
|
string1 の中の start で指定された文字位置から、 length で指定された文字数を取り出し、その 文字列を返します。 start 値には、任意の数値を指定できます。 string1 の先頭位置は 1 です。0 または負数の start 値は、先頭位置の左と見なされます。 length は負の値にできません。
|
|
string の小文字すべて大文字に変換された文字列を返します。
|
|
string の一番左の文字の Unicode コードポイント値を返します。ASCII 関数も参照してください。
|
この場合、T1.C1 と T2.C2 がインデックス列ならば、述部の両側が最適化されます。述部は、WHERE キーワードの後に続く完全な検索条件です。結合に含まれるテーブルのサイズに従って、オプティマイザーは最初に処理する適切なテーブルを選択します。
Smith と
Smythe の文字列に SOUNDEX を使用した例を次に示します。
|
|
|
現在の現地日付を 'yyyy-mm-dd' 形式で返します。デフォルトで、ローカル時計の時刻を使用します。「SET TIME ZONE」 を呼び出した場合、CURDATE() の値は、システム時計とオペレーティング システムの地域の設定を基に UTC 日付/時刻を計算し、SET TIME ZONE で指定されたディスプレースメント値を加算することによって決定されます。
|
|
|
|
現在の現地時刻を 'hh:mm:ss' 形式で返します。デフォルトで、ローカル時計の時刻を使用します。「SET TIME ZONE」 を呼び出した場合、CURTIME() の値は、システム時計とオペレーティング システムの地域の設定を基に UTC 日付/時刻を計算し、SET TIME ZONE で指定されたディスプレースメント値を加算することによって決定されます。
|
|
|
|
|
DATEADD (datepart, interval, date_exp)
|
日付に interval を加算した新しい DATETIME 値を返します。たとえば、 datapart が day、 interval が 11、 date_exp が 2020 年 1 月 26 日の場合は、2020 年 2 月 6 日を返します。
datepart には interval を加算する日付の部分を指定します。値は以下のいずれかである必要があります。
year quarter month day dayofyear week hour minute second millisecond
interval には、 datepart を増加させるために用いる正または負の整数値を指定します。 interval に小数部が含まれる場合、小数部は無視されます。
date_exp は DATETIME 値、暗黙的に DATETIME 値に変換される値、または DATE 形式の 文字列を返す式です。 「DATETIME」 を参照してください。
|
DATEDIFF (datepart, start, end)
|
datepart には差異を計算する日付の部分を指定します。値は以下のいずれかである必要があります。
start には差異を計算する始まりの日付を指定します。 start は DATETIME 値または DATE 形式の Unicode 文字列を返す式です。
end には差異を計算する終わりの日付を指定します。 end は DATETIME 値または DATE 形式の Unicode 文字列を返す式です。
end から start が減算されます。戻り値が整数値の範囲外の場合はエラーが返されます。 「データ型の範囲」を参照してください。
|
DATEFROMPARTS (year, month, day)
|
|
DATENAME (datepart, date_exp)
|
date_exp の datepart を表す英語の文字列(VARCHAR)を返します。たとえば、 datepart month は January、February というように月名を返します。 datepart weekday は Monday、Tuesday というように曜日を返します。
datepart は返される日付の部分で、値は以下のいずれかである必要があります。
date_exp は DATETIME 値、暗黙的に DATETIME 値に変換される値、または DATE 形式の文字列を返す式です。 「DATETIME」 を参照してください。
|
DATEPART (datepart, date_exp)
|
date_exp の datepart を表す整数を返します。たとえば、 datepart month は月を表す整数を返します(1 月 = 1、2 月 = 2)。 datepart weekday は曜日を表す整数を返します(日曜日 = 1、土曜日 = 7)。
datepart は返される日付の部分で、値は以下のいずれかである必要があります。
date_exp は DATETIME 値、暗黙的に DATETIME 値に変換される値、または DATE 形式の文字列を返す式です。 「DATETIME」 を参照してください。
|
|
指定された date_exp の日にちを返します。 これは DATEPART(day, date_exp) とまったく同じです。 DATEPART (datepart, date_exp) を参照してください。
|
|
date_exp の曜日部分に対して、曜日の名前(たとえば、Sunday から Saturday)を含んでいる英語の文字列を返します。
date_exp には、日付リテラル、タイムスタンプ リテラル、または DATE、TIMESTAMP、DATETIME データが格納されている列を指定できます。
|
|
date_exp の月の何日目かを 1 ~ 31 の範囲の整数値で返します。 date_exp には、日付リテラル、タイムスタンプ リテラル、または DATE、TIMESTAMP、DATETIME データが格納されている列を指定できます。
|
|
date_exp の年の何日目かを 1 ~ 366 の範囲の整数値で返します。
|
DATETIMEFROMPARTS (year, month, day, hour, minute, seconds, milliseconds)
|
|
DATETIMEOFFSETFROMPARTS (year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision)
|
percision を除くパラメーターのいずれかがヌルである場合は、ヌルが返されます。 precision がヌルの場合は、エラーが返されます。
precision には、分数値の精度を指定します。指定できる範囲は 0 から 7 です。 fractions は precision によって決まり、範囲は 0 から 9999999 です。たとえば、 precision が 3 の場合、各 fractions はミリ秒を表します。 fractions に指定される桁数は、 precision の値以下でなければなりません。
hour_offset には、タイム ゾーンの時部分を指定します。範囲は -14 から +14 です。 minute_offset には、タイム ゾーンの分部分を指定します。範囲は 0 から 59 です。 hour_offset と minute_offset の符号は、 hour_offset が 0 でない限り、同じでなければなりません。
|
EXTRACT (extract_field, extract_source)
|
extract_source の extract_field 部分を返します。引数 extract_source は、日付、時刻、または間隔を表す式です。
extract_field に指定できるキーワードは次のとおりです。
|
|
時刻を 0 ~ 23 の範囲の整数値で返します。time_exp には、日付リテラル、タイムスタンプ リテラル、または DATE、TIMESTAMP、DATETIME データが格納されている列を指定できます。
|
|
分を 0 ~ 59 の範囲の整数値で返します。time_exp には、日付リテラル、タイムスタンプ リテラル、または DATE、TIMESTAMP、DATETIME データが格納されている列を指定できます。
|
|
月を 1 ~ 12 の範囲の整数値で返します。date_exp には、日付リテラル、タイムスタンプ リテラル、または DATE、TIMESTAMP、DATETIME データが格納されている列を指定できます。
|
|
date_exp の月の部分に対して、月名(たとえば、January から December)を含んでいる英語の文字列を返します。 date_exp には、日付リテラル、タイムスタンプ リテラル、または DATE、TIMESTAMP、DATETIME データが格納されている列を指定できます。
|
|
デフォルトで、ローカル時計の時刻を使用します。「SET TIME ZONE」 を呼び出した場合、NOW() の値は、システム時計とオペレーティング システムの地域の設定を基に UTC 日付/時刻を計算し、SET TIME ZONE で指定されたディスプレースメント値を加算することによって決定されます。
|
|
date_exp の四半期を 1 ~ 4 の範囲の整数値で返します。1 は 1 月 1 日~ 3 月 31 日を表します。 date_exp には、日付リテラル、タイムスタンプ リテラル、または DATE、TIMESTAMP、DATETIME データが格納されている列を指定できます。
|
|
秒を 0 ~ 59 の範囲の整数値で返します。time_exp には、日付リテラル、タイムスタンプ リテラル、または DATE、TIMESTAMP、DATETIME データが格納されている列を指定できます。
|
|
|
TIMEFROMPARTS (hour, minute, seconds, fractions, precision)
|
percision を除くパラメーターのいずれかがヌルである場合は、ヌルが返されます。 precision がヌルの場合は、エラーが返されます。
precision には、分数値の精度を指定します。指定できる範囲は 0 から 7 です。 fractions は precision によって決まり、範囲は 0 から 9999999 です。たとえば、 precision が 3 の場合、各 fractions はミリ秒を表します。 fractions に指定される桁数は、 precision の値以下でなければなりません。
|
TIMESTAMPADD (interval, integer_exp, timestamp_exp)
|
interval タイプの integer_exp で示された間隔を timestamp_exp に加算したタイムスタンプを返します。
interval に指定できるキーワードは次のとおりです。
|
TIMESTAMPDIFF (interval, timestamp_exp1, timestamp_exp2)
|
timestamp_exp2 が timestamp_exp1 より大きい場合に、その差である interval の整数値を返します。
interval に指定できる値は、TIMESTAMPADD と同じです。
|
|
date_exp が 1 年の第何週目かを 1 ~ 53 の範囲の整数値で返します。 date_exp には、日付リテラル、タイムスタンプ リテラル、または DATE、TIMESTAMP、DATETIME データが格納されている列を指定できます。
|
|
指定された date_exp の曜日を返します。1 = 日曜日、7 = 土曜日です。 これは DATEPART(weekday, date_exp) とまったく同じです。 DATEPART (datepart, date_exp) を参照してください。
|
|
年数を整数値で返します。範囲はデータ ソースに依存します。date_exp には、日付リテラル、タイムスタンプ リテラル、または DATE、TIMESTAMP、DATETIME データが格納されている列を指定できます。
|
SELECT は 100 と '
string1' を返します。これは、c1 と c2 のどちらにも値が入っており、ヌルではないからです。
SELECT は 1000 と '
a string' を返します。これは、c1 と c2 のどちらにもヌルが入っているからです。
以下の例では、DATETIME データ型を style パラメーターを使用して、または使用しないで変換する方法を示します。
style パラメーターを使用する場合は、以下の要件に注意してください。