与えられた日付式の日付がその年の日付に対応する整数値を返す、スカラ日付/時刻関数です。
Synopsis
{fn DAYOFYEAR(date-expression)}
引数
date-expression 列の名前や、他のスカラ関数の結果、または日付やタイムスタンプ・リテラルである式。
概要
DAYOFYEAR は、指定された日付式の日付がその年の日付に対応する 1 から 366 までの整数を返します。DAYOFYEAR はうるう年の日付にも対応します。
日付式は、日付整数または日付/時刻文字列のどちらかになります。日付/時刻文字列は、以下の形式で指定します。
yyyy-mm-dd hh:mm:ss
Caché の互換性のため、年部分 (yyyy) は 1840 から 9999 までの範囲の 4 桁の整数にする必要があります。DAYOFYEAR は、ユーザの指定値に対して範囲チェックを行いません。そのため、2 桁の年も許可されます。年部分を省略した場合、DAYOFYEAR はうるう年想定規則 (例を参照) を適用し、それに従って値を算出します。日部分 (dd) を省略した場合、DAYOFYEAR はその日をゼロ (その月の最初の日よりも 1 少ない値) として評価します。
DATEPART または DATENAME 関数を使用して、同じ日付カウントを取得することもできます。DATEPART および DATENAME では、日付式に対して値と範囲のチェックが行われます。
以下のメソッド・コールを使用することで、Caché ObjectScript からこの関数を呼び出すこともできます。
$SYSTEM.SQL.DAYOFYEAR(date-expression)
以下の例は、日付式の日 (2004 年 3 月 4 日) がその年の 64 番目の日であるため、ともに整数 64 を返します (うるう年の日付であることが自動的に計算されます)。
SELECT DISTINCT {fn DAYOFYEAR('2004-03-04 12:45:37')} AS DayCount
FROM Sample.Person
SELECT DISTINCT {fn DAYOFYEAR(59598)} AS DayCount
FROM Sample.Person
以下の例では、年フィールドの値が両方とも省略されています。ただし、これらの例によって返される値は異なることに注意してください。最初の例は日付区切り文字で始まり、年値が無指定であることを示しています。この例では、無指定の年がうるう年でないと想定されるため、整数 63 が返されます。
SELECT DISTINCT {fn DAYOFYEAR('-03-04')} AS DayCount
FROM Sample.Person
2 番目の例は、日付区切り文字の前に非数値プレースホルダがあり、年値が無指定であることを示しています。この例では、非数値プレースホルダがうるう年を表すと想定されるため、整数 64 が返されます。
SELECT DISTINCT {fn DAYOFYEAR('*-03-04')} AS DayCount
FROM Sample.Person
以下の例は、日フィールドが省略されていることで指定された月の 0 番目の日と想定されるため、整数 304 を返します。この例は、この後の例と同義です。
SELECT DISTINCT {fn DAYOFYEAR('2003-11')} AS DayCount
FROM Sample.Person
SELECT DISTINCT {fn DAYOFYEAR('2003-11-00')} AS DayCount
FROM Sample.Person
以下の例は今日の日付を示す値を返します。
SELECT DISTINCT {fn DAYOFYEAR({fn NOW()})} AS DayCount_Now
FROM Sample.Person
SELECT DISTINCT {fn DAYOFYEAR(CURRENT_DATE)} AS DayCount_Now
FROM Sample.Person
SELECT DISTINCT {fn DAYOFYEAR(CURRENT_TIMESTAMP)} AS DayCount_Now
FROM Sample.Person
関連項目
DATEPART DATENAME DAYNAME DAYOFMONTH DAYOFWEEK