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 を使用すると、他の日付要素で月の名前または月名の省略形を検索できます。月に対応する整数を返すには、MONTH、DATEPART、または 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 エラー・コードが発行されます。
関連項目
-
SQL 関数 : DATEPART DATENAME DAYOFMONTH MONTH TO_DATE
-
ObjectScript 関数 : $ZDATE
-
ObjectScript 特殊変数 : $HOROLOG $ZTIMESTAMP