WEEK は、日付整数または日付/時刻文字列を受け取り、その日付に対するその年の始めからの週の数を返します。週は、
$HOROLOG 日付 (1840 年 12 月 31 日からの日数) を使用して計算されます。したがって、週は年と年をまたいでカウントされ、Week 1 は前年の最後の週から開始された 7 日間を終了した日々となります。したがって、週は常に日曜日から始まり、暦年の最初の日曜日は、Week 1 から Week 2 への切り替えを意味します。その年の最初の日曜日が 1 月 1 日である場合、その日曜日は Week 1 に入ります。その年の最初の日曜日が 1 月 1 日より後の場合、その日曜日は Week 2 の第 1 日目になります。このため、Week 1 は、一般的には、7 日間より短くなります。
DAYOFWEEK 関数を使用すると、週の曜日を決定できます。
SET x="2005-1-2"
SET y="2006-1-1"
&sql(SELECT {fn DAYOFWEEK(:x)},{fn WEEK(:x)},
{fn DAYOFWEEK(:y)},{fn WEEK(:y)}
INTO :a,:b,:c,:d
FROM Sample.Person)
WRITE !,"Error code=",SQLCODE
WRITE !,"2005 Day of Week is: ",a," (Sunday=1)"
WRITE " Week of Year is: ",b
WRITE !,"2006 Day of Week is: ",c," (Sunday=1)"
WRITE " Week of Year is: ",d
SELECT DISTINCT
{fn WEEK('2000-01-01')}||{fn DAYNAME('2000-01-01')} AS WeekofDay1,
{fn WEEK('2000-01-02')}||{fn DAYNAME('2000-01-02')} AS WeekofDay2
FROM Sample.Person