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?

MONTHNAME

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

Synopsis

{fn MONTHNAME(date-expression)}

引数

date-expression Caché 日付整数、ODBC 日付、またはタイムスタンプとして評価される式。この式は、列の名前、他のスカラ関数の結果、または日付やタイムスタンプのリテラルとすることができます。

概要

MONTHNAME では、入力として 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 のいずれかのデータ型として指定することもできます。

MONTHNAME は、該当する月の名前 (January ~ December) を返します。この返り値は最長 15 文字の文字列です。

MONTHNAME は、指定された日付が有効であることをチェックします。年は 1841 ~ 9999、月は 01 ~ 12、日はその月に適切な数字 (例えば、02/29 はうるう年のみ有効) である必要があります。日付が無効の場合、MONTHNAME は SQLCODE -400 エラー (深刻なエラーが発生しました) を発行します。

月の名前は、既定のアメリカ英語の省略のない月の名前になります。これらの月の名前の値を変更するには、MONTH_NAME オプションで SET OPTION コマンドを使用します。

DATENAME 関数を使用して、同じ月名情報を取得することもできます。TO_DATE を使用すると、他の日付要素で月の名前または月名の省略形を検索できます。月に対応する整数を返すには、MONTHDATEPART、または TO_DATE を使用します。

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

$SYSTEM.SQL.MONTHNAME(date-expression)

以下の例は、日付式 (February 16, 2000) の月は 2 月なので、両方とも、文字列 "February" を返します。

SELECT {fn MONTHNAME('2000-02-16')} AS NameOfMonth
SELECT {fn MONTHNAME(59589)} AS NameOfMonth

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

SELECT {fn MONTHNAME({fn NOW()})} AS MnameNow,
       {fn MONTHNAME(CURRENT_DATE)} AS MNameCurrDate,
       {fn MONTHNAME(CURRENT_TIMESTAMP)} AS MNameCurrTS,
       {fn MONTHNAME($HOROLOG)} AS MNameHorolog,
       {fn MONTHNAME($ZTIMESTAMP)} AS MNameZTS

以下の埋め込み SQL の例は、MONTHNAME が無効な日付 (2001 年はうるう年ではない) をどのように処理するかを示しています。

   SET testdate="2001-02-29"
   &sql(SELECT {fn MONTHNAME(:testdate)} INTO :a)
   IF SQLCODE'=0 {
     WRITE !,"Error code ",SQLCODE,!
     WRITE %msg,! }
   ELSE {
     WRITE !,"returns: ",a }
   QUIT

<ILLEGAL VALUE> を示す %msg と共に SQLCODE -400 エラー・コードが発行されます。この妥当性テストは、日付の年が許容範囲内 (1840 年より後) かどうかをテストする前に実行されます。

以下の埋め込み SQL の例では、MONTHNAME が、有効だが範囲外の日付 (1835 年は Caché SQL で扱うことができる範囲より前の年) をどのように処理するかを示します。

   SET testdate="1835-02-19"
   &sql(SELECT {fn MONTHNAME(:testdate)} INTO :a)
   IF SQLCODE'=0 {
     WRITE !,"Error code ",SQLCODE,!
     WRITE %msg,! }
   ELSE {
     WRITE !,"returns: ",a }
   QUIT

<VALUE OUT OF RANGE> を示す %msg と共に SQLCODE -400 エラー・コードが発行されます。

関連項目

FeedbackOpens in a new tab