Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

MONTH

日付式に対してその月を整数として返す日付関数です。

Synopsis

MONTH(date-expression)
{fn MONTH(date-expression)}

引数

date-expression 列の名前や、他のスカラ関数の結果、または日付やタイムスタンプ・リテラルである式。

概要

MONTH は、月を示す整数を返します。月の整数は、Caché 日付整数、$HOROLOG 値や $ZTIMESTAMP 値、ODBC 形式の日付文字列、またはタイムスタンプに基づいて計算されます。

date-expression タイムスタンプはデータ型 %Library.TimeStampOpens in a new tab (yyyy-mm-dd hh:mm:ss.fff) です。

タイムスタンプの時刻部分は評価されないので省略可能です。date-expression は、%Library.FilemanDate、%Library.FilemanTimestamp、%MV.Date のいずれかのデータ型として指定することもできます。

日付文字列の月 (mm) 部分は、1 から 12 までの範囲の整数でなければなりません。ただし、ユーザの指定値に対して、範囲チェックは行われません。12 よりも大きな数、ゼロ、小数は、指定されたとおりに返されます。(–) は区切り文字として使用されるため、負の数はサポートされません。入力では、先頭のゼロはオプションです。出力では、先頭と末尾のゼロは抑制されます。

月部分が '0'、'00'、または数以外の値の場合、MONTH はゼロを返します。日付文字列の月部分が完全に省略されている場合 ('yyyy––dd')、または日付式が指定されていない場合も、ゼロが返されます。

MONTH は、日付文字列内にある 2 番目の数値文字列を月の値として解釈します。そのため、日付文字列の年の部分を省略すると ('mm-dd hh:mm:ss')、2 番目の数値 ('dd') を月の値として処理する結果になります。したがって、不明な年の値に対して、先頭にハイフンあるいはプレースホルダを指定する必要があります。Caché との互換性に関しては、一般的に、9999 が好ましい既定の年の値です。

MONTH は、{ } 括弧構文による ODBC スカラ関数、または SQL 汎用関数として呼び出せる点に注意してください。

この関数は、ObjectScript から MONTH()Opens in a new tab メソッド呼び出しを使用して呼び出すこともできます。

$SYSTEM.SQL.MONTH(date-expression)

日付/時刻文字列の要素は、SQL 関数の YEARMONTHDAY (または DAYOFMONTH)、HOURMINUTESECOND をそれぞれ使用して取得できます。DATEPART または DATENAME 関数を使用して、同じ要素を取得することもできます。日付要素は、TO_DATE を使用して取得できます。DATEPART および DATENAME では、月の値に対して値と範囲のチェックが行われます。

LAST_DAY 関数は、指定した月の最後の日付を返します。

以下の例は、2 月は 1 年の中で 2 番目の月なので、両方とも 2 を返します。

SELECT MONTH('2000-02-16') AS Month_Given
SELECT {fn MONTH(59589)} AS Month_Given

以下の例では、DOB の年コンポーネントを無視して、レコードを月と日の誕生日順に配列しています。

SELECT Name,DOB AS Birthdays
FROM Sample.Person
ORDER BY MONTH(DOB),DAY(DOB),Name

以下の例は、月が省略されているため、ゼロを返します。

SELECT MONTH('2000--16') AS Month_Given
SELECT {fn MONTH('12:34:55')} AS Month_Given
SELECT MONTH('2000 12:34:55') AS Month_Given

以下の例は、省略された年に対してプレースホルダ文字 (-) が指定されているため、2 を返します。

SELECT {fn MONTH('-02-16')} AS Month_Given

以下の例はすべて、現在の月を返します。

SELECT {fn MONTH({fn NOW()})} AS MNow,
       MONTH(CURRENT_DATE) AS MCurrD,
       {fn MONTH(CURRENT_TIMESTAMP)} AS MCurrTS,
       MONTH($HOROLOG) AS MHorolog,
       {fn MONTH($ZTIMESTAMP)} AS MZTS

関連項目

FeedbackOpens in a new tab