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?

DAYOFMONTH

日付式に対して月における日付を返す日付関数です。

Synopsis

{fn DAYOFMONTH(date-expression)}

引数

date-expression 月における日付の値を返す元となる日付またはタイムスタンプ式です。列の名前や、他のスカラ関数の結果、または日付やタイムスタンプ・リテラルである式。

概要

DAYOFMONTH は、月における日付を 1 ~ 31 の整数で返します。date-expression には、Caché 日付整数、$HOROLOG 値や $ZTIMESTAMP 値、ODBC 形式の日付文字列、またはタイムスタンプを指定できます。

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

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

DAYOFMONTH 関数と DAY 関数は機能的に同一です。

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

  WRITE $SYSTEM.SQL.DAYOFMONTH("2004-02-25")

タイムスタンプの date-expression

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

日部分が '0'、'00'、または数以外の値の場合、DAYOFMONTH は NULL を返します。日付文字列の日部分が完全に省略されている場合 ('yyyy–mm hh:mm:ss')、または日付式が指定されていない場合も、同様に NULL が返されます。

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

$HOROLOG の date-expression

$HOROLOG 値の月の日付を計算するときは、DAYOFMONTH では、うるう年の違いが計算されます (2000 年はうるう年で 1900 年と 2100 年はうるう年ではないという、1 世紀の日付調整など)。

DAYOFMONTH では、1840 年 12 月 31 日 よりも前の date-expression 値を負の整数として処理できます。詳細は、以下の例を参照してください。

SELECT {fn DAYOFMONTH(-306)} AS DayOfMonthFeb, /* February 29, 1840 */
       {fn DAYOFMONTH(-305)} AS DayOfMonthMar  /* March 1, 1840     */

LAST_DAY 関数は、指定された日付の月の最後の日付を返します ($HOROLOG 形式)。

以下の例は、指定された日付がその月の 25 番目の日であるため 25 を返します。

SELECT {fn DAYOFMONTH('2004-02-25')} AS DayNumTS,
       {fn DAYOFMONTH(59590)} AS DayNumH

以下の例も、月の日付として数値 25 を返します。年は省略されていますが、区切り文字列 (–) がプレースホルダとしての役割を果たしています。

SELECT {fn DAYOFMONTH('-02-25 11:45:32')} AS DayNum

以下の例は、<null> を返します。

SELECT{fn DAYOFMONTH('2000-02-00 11:45:32')} AS DayNum
SELECT {fn DAYOFMONTH('2000-02 11:45:32')} AS DayNum
SELECT {fn DAYOFMONTH('11:45:32')} AS DayNum

以下の DAYOFMONTH の例はすべて、月における今日の日付を示す値を返します。

SELECT {fn DAYOFMONTH({fn NOW()})} AS DoM_Now,
       {fn DAYOFMONTH(CURRENT_DATE)} AS DoM_CurrD,
       {fn DAYOFMONTH(CURRENT_TIMESTAMP)} AS DoM_CurrTS,
       {fn DAYOFMONTH($HOROLOG)} AS DoM_Horolog,
       {fn DAYOFMONTH($ZTIMESTAMP)} AS DoM_ZTS

$ZTIMESTAMP は協定世界時 (UTC) を返すことに注意してください。その他の time-expression 値はローカル時刻を返します。これは、DAYOFMONTH 値に影響することがあります。

以下の例は、先頭のゼロが抑制されることを示します。月の日付の値に応じて、1 または 2 の長さを返します。

SELECT LENGTH({fn DAYOFMONTH('2004-02-05')}),
       LENGTH({fn DAYOFMONTH('2004-02-15')})

関連項目

FeedbackOpens in a new tab