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?

DAYNAME

日付式に対して曜日を返す日付関数です。

Synopsis

{fn DAYNAME(date-expression)}

引数

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

概要

DAYNAME は、指定された日付に該当する曜日名を返します。返り値は最長 15 文字の文字列です。既定として返される曜日名は、Sunday、Monday、Tuesday、Wednesday、Thursday、Friday、Saturday です。

これらの既定曜日名の値を変更するには、WEEKDAY_NAME オプションで SET OPTION コマンドを使用します。

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

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

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

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

$SYSTEM.SQL.DAYNAME(date-expression)

以下の 2 つの例は、指定された日付 (2004 年 2 月 25 日) の曜日が水曜日なので、Wednesday という文字列を返します。最初の例はタイムスタンプ文字列を取ります。

SELECT {fn DAYNAME('2004-02-25 12:35:46')} AS Weekday

2 番目の例は Caché 日付整数を取ります。

SELECT {fn DAYNAME(59590)} AS Weekday

以下の例はすべて、今日の曜日を返します。

SELECT {fn DAYNAME({fn NOW()})} AS Wd_Now,
       {fn DAYNAME(CURRENT_DATE)} AS Wd_CurrDate,
       {fn DAYNAME(CURRENT_TIMESTAMP)} AS Wd_CurrTstamp,
       {fn DAYNAME($ZTIMESTAMP)} AS Wd_ZTstamp,
       {fn DAYNAME($HOROLOG)} AS Wd_Horolog

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

以下の埋め込み SQL の例は、DAYNAME で無効な日付 (2001 年はうるう年ではないので 2001-02-29 は無効) を処理する方法を示します。

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

以下の埋め込み SQL の例は、DAYNAME で無効な日付 (1835 年は Caché SQL で扱うことができる範囲よりも前の年なので無効) を処理する方法を示します。

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

関連項目

FeedbackOpens in a new tab