与えられた日付式で、その月を 1 から 12 までの整数値として返す、スカラ日付/時刻関数です。
Synopsis
{fn MONTH(date-expression)}
引数
date-expression 列の名前や、他のスカラ関数の結果、または日付やタイムスタンプ・リテラルである式。
概要
MONTH は、日付整数または日付/時刻文字列の月部分を返します。日付/時刻文字列は、以下の形式で指定します。
yyyy-mm-dd hh:mm:ss
月 (mm) 部分は、1 から 12 までの範囲の整数でなければなりません。ただし、ユーザの指定値に対して、範囲チェックは行われません。12 よりも大きな数、ゼロ、小数は、指定されたとおりに返されます。(–) は区切り文字として使用されるため、負の数はサポートされません。入力では、先頭のゼロはオプションです。出力では、先頭と末尾のゼロは抑制されます。
月部分が '0'、'00'、または数以外の値の場合、MONTH はゼロを返します。日付文字列の月部分が完全に省略されている場合 ('yyyy––dd')、または日付式が指定されていない場合も、ゼロが返されます。
MONTH は、日付文字列内にある 2 番目の数値文字列を月の値として解釈します。そのため、日付文字列の年の部分を省略すると ('mm-dd hh:mm:ss')、2 番目の数値 ('dd') を月の値として処理する結果になります。したがって、不明な年の値に対して、先頭にハイフンあるいはプレースホルダを指定する必要があります。Caché との互換性に関しては、一般的に、9999 が好ましい既定の年の値です。
日付/時刻文字列の要素は、SQL スカラ関数の YEARMONTHDAYOFMONTHHOURMINUTESECOND をそれぞれ使用して取得できます。DATEPART または DATENAME 関数を使用して、同じ要素を取得することもできます。日付要素は、TO_DATE を使用して取得できます。DATEPART および DATENAME では、月の値に対して値と範囲のチェックが行われます。
以下のメソッド・コールを使用することで、Caché ObjectScript からこの関数を呼び出すこともできます。
$SYSTEM.SQL.MONTH(date-expression)
以下の例は、2 月は 1 年の中で 2 番目の月なので、両方とも 2 を返します。
SELECT DISTINCT {fn MONTH('2000-02-16')} AS Month_Given
FROM Sample.Person
SELECT DISTINCT {fn MONTH(59589)} AS Month_Given
FROM Sample.Person
以下の例は、月が省略されているため、ゼロを返します。
SELECT DISTINCT {fn MONTH('2000--16')} AS Month_Given
FROM Sample.Person
SELECT DISTINCT {fn MONTH('12:34:55')} AS Month_Given
FROM Sample.Person
SELECT DISTINCT {fn MONTH('2000 12:34:55')} AS Month_Given
FROM Sample.Person
以下の例は、省略された年に対してプレースホルダ文字 (-) が指定されているため、2 を返します。
SELECT DISTINCT {fn MONTH('-02-16')} AS Month_Given
FROM Sample.Person
以下の例は、現在の月を返します。
SELECT DISTINCT {fn MONTH({fn NOW()})} AS Month_Now
FROM Sample.Person
SELECT DISTINCT {fn MONTH(CURRENT_DATE)} AS Month_Now
FROM Sample.Person
関連項目