与えられた日付式の日付がその年の日付に対応する整数値を返す、スカラ日付/時刻関数です。
Synopsis
{fn DAYOFYEAR(date-expression)}
日付式は、日付整数または日付/時刻文字列のどちらかになります。日付/時刻文字列は、以下の形式で指定します。
Caché の互換性のため、年部分 (yyyy) は 1840 から 9999 までの範囲の 4 桁の整数にする必要があります。
DAYOFYEAR は、ユーザの指定値に対して範囲チェックを行いません。そのため、2 桁の年も許可されます。年部分を省略した場合、
DAYOFYEAR はうるう年想定規則 (例を参照) を適用し、それに従って値を算出します。日部分 (dd) を省略した場合、
DAYOFYEAR はその日をゼロ (その月の最初の日よりも 1 少ない値) として評価します。
以下のメソッド・コールを使用することで、Caché ObjectScript からこの関数を呼び出すこともできます。
以下の例は、日付式の日 (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