0

オラクルでは、週の開始日を変更する可能性があります。米国では初日は日曜日、EUでは-MON

この変更は、nls_territoryを変更することで機能します

ただし、曜日と週の番号付けを一度に検討すると、次のような状況になります。

day week_number
  7          9   <- here it should be still week 8
  1          9
  2          9
  3          9
  4          9
  5          9
  6          9
  7         10  <- here it should still be week 9

どのnlsがこの週のstart_dayに影響を与える可能性があるかについて何か考えがありますか?

同様の投稿 週番号から週の最初の日を取得

4

2 に答える 2

2

Oracleには、週番号を示す2つの日付形式があります。

「WW」は1月1日から始まり、7日ごとに増加します。2013年1月1日は火曜日だったため、火曜日に週番号が増加します。これが現在使用しているバージョンだと思います。

ただし、ISO標準である「IW」形式もあります。このバージョンでは、週番号は1月1日が当たる週の月曜日から始まります。これには、2012年12月31日を2013年の第1週の最初の日付にするという特有の副作用がありますが、週番号は常に週の1日目に増加することを意味します。

詳細をご覧ください。

于 2013-01-10T14:34:39.053 に答える
0

あなたの質問を理解できません。あなたの例では日番号と週番号の間に関連性がありません。申し訳ありませんが...これはISO週を取得するのに役立つかもしれません。これにより、年間の週のテーブルが作成されます。クエリに「WW」形式を追加して、日付、週を差分で比較できます。NLS設定:

   -- ISO_WK# --
   SELECT mydate
    , TRUNC(mydate, 'w') wk_starts
    , TRUNC(mydate, 'w') + 7 - 1/86400 wk_ends
    , TO_NUMBER (TO_CHAR (mydate, 'IW')) ISO_wk#  
   FROM
   (
    SELECT TRUNC(SYSDATE, 'YEAR')-1 + LEVEL AS mydate
      FROM dual
    CONNECT BY LEVEL <= 
      (
        SELECT TRUNC(SYSDATE, 'YEAR')-TRUNC(ADD_MONTHS (SYSDATE, -12), 'YEAR') "Num of Days"   
         FROM dual
      )
   )
  /
于 2013-01-10T14:45:19.393 に答える