0
JavaのCalenderクラスで取得する絶対週とOracleで取得する絶対週
JavaのCalenderクラスで年の絶対週(1年の何週目の週か)を取得すると、1月1日を最初の週として取得します。
ですがOracleで絶対週を取得すると、論理的な絶対週を取得します。
JavaをOracleの絶対週、またはOracleをJavaの絶対週に合わせられる方法がありましたら、ご教授願います。
【Java】
String dt = "20060101";
Calendar cal;
cal = Calendar.getInstance();
cal.set(Integer.parseInt(dt.substring(0,4)),
Integer.parseInt(dt.substring(4,6)) -1,
Integer.parseInt(dt.substring(6,8))
);
int weekNum = cal.get(Calendar.WEEK_OF_YEAR );
DecimalFormat df = new DecimalFormat("00");
String absWeekNum = dt.substring(0,4) + String.valueOf(df.format(weekNum));
System.out.println(absWeekNum);
<結果>
200601
【Oracle】
2006/01/01 ⇒ 2005年の52週目
SQL> select to_char(to_date('20060101', 'yyyymmdd'), 'iw')
2 from dual;
TO
--
52
2006/01/01 ⇒ 2006年の1週目
SQL> select to_char(to_date('20060102', 'yyyymmdd'), 'iw')
2 from dual;
TO
--
01