HYYWD - 日付時間値から年と週番号を取得
HNAME および HPART で返された週番号を入力日付の前後いずれかに配置して、年の値に含めることができます。
HYYWD 関数は、指定した日付時間値から年と週番号の両方を返します。
出力は、日付と週番号の ISO 標準フォーマットである yyyy-Www-d に適合するように編集されます。
日付時間値から年と週番号を取得
HYYWD(dtvalue, output)
説明
日付時間
編集する日付時間値です。値を含む日付時間フィールド名、または値を返す式を指定することもできます。
文字
結果を格納するフィールド名、または出力フォーマットです。フォーマットは一重引用符 (') で囲みます。
出力フォーマットの長さは 10 バイト以上にする必要があります。以下は、出力のフォーマットです。
yyyy-Www-d
説明
4 桁の年です。
2 桁の週番号です (01 から 53)。
1 桁の曜日です (1 から 7)。d の値は、WEEKFIRST の設定に対応します。たとえば、WEEKFIRST が 2 または ISO2 (月曜日) の場合、出力では月曜日は 1、火曜日は 2 と表示されます。
EDIT 関数を使用して、この出力から個々のサブフィールドを抽出できます。
日付時間値から年と週番号を取得
次の例では、VIDEOTR2 データソースに対するリクエストで HYYWD を呼び出して、TRANSDATE 日付時間フィールドを ISO 標準フォーマットの日付と週番号に変換します。WEEKFIRST が ISO2 (月曜日) に設定され、ISO 標準の週番号が生成されます。
SET WEEKFIRST = ISO2 TABLE FILE VIDEOTR2 SUM TRANSTOT QUANTITY COMPUTE ISODATE/A10 = HYYWD(TRANSDATE, 'A10'); BY TRANSDATE WHERE QUANTITY GT 1 END
出力結果は次のとおりです。
TRANSDATE TRANSTOT QUANTITY ISODATE --------- -------- -------- ------- 1991/06/24 04:43 16.00 2 1991-W26-1 1991/06/25 01:17 2.50 2 1991-W26-2 1991/06/27 02:45 16.00 2 1991-W26-4 1996/08/17 05:11 5.18 2 1996-W33-6 1998/02/04 04:11 12.00 2 1998-W06-3 1999/01/30 04:16 13.00 2 1999-W04-6 1999/04/22 06:19 3.75 3 1999-W16-4 1999/05/06 05:14 1.00 2 1999-W18-4 1999/08/09 03:17 15.00 2 1999-W32-1 1999/09/09 09:18 14.00 2 1999-W36-4 1999/10/16 09:11 5.18 2 1999-W41-6 1999/11/05 11:12 2.50 2 1999-W44-5 1999/12/09 09:47 5.18 2 1999-W49-4 1999/12/15 04:04 2.50 2 1999-W50-3
HYYWD によって返される日付から構成要素を抽出
次の例では、VIDEOTR2 データソースに対するリクエストで HYYWD を呼び出して、TRANSDATE 日付時間フィールドを ISO 標準フォーマットの日付と週番号に変換します。次に、EDIT 関数を使用して、この日付から週構成要素を抽出します。WEEKFIRST が ISO2 (月曜日) に設定され、ISO 標準の週番号が生成されます。
SET WEEKFIRST = ISO2 TABLE FILE VIDEOTR2 SUM TRANSTOT QUANTITY COMPUTE ISODATE/A10 = HYYWD(TRANSDATE, 'A10'); COMPUTE WEEK/A2 = EDIT(ISODATE, '$$$$$$99$$'); BY TRANSDATE WHERE QUANTITY GT 1 AND DATE EQ 1991 END
出力結果は次のとおりです。
TRANSDATE TRANSTOT QUANTITY ISODATE WEEK --------- -------- -------- ------- ---- 1991/06/24 04:43 16.00 2 1991-W26-1 26 1991/06/25 01:17 2.50 2 1991-W26-2 26 1991/06/27 02:45 16.00 2 1991-W26-4 26