我正在使用 Oracle 的 to_char() 函数将日期转换为周数 (1-53):
select pat_id,
pat_enc_csn_id,
contact_date,
to_char(contact_date,'ww') week,
...
“ww”开关为我提供了今年一月的日期值:
Date Week
1-Jan-10 1
2-Jan-10 1
3-Jan-10 1
4-Jan-10 1
5-Jan-10 1
6-Jan-10 1
7-Jan-10 1
8-Jan-10 2
9-Jan-10 2
10-Jan-10 2
11-Jan-10 2
12-Jan-10 2
快速查看日历表明这些值应该是:
Date Week
1-Jan-10 1
2-Jan-10 1
3-Jan-10 2
4-Jan-10 2
5-Jan-10 2
6-Jan-10 2
7-Jan-10 2
8-Jan-10 2
9-Jan-10 2
10-Jan-10 3
11-Jan-10 3
12-Jan-10 3
如果我使用“iw”开关而不是“ww”,结果不太理想:
Date Week
1-Jan-10 53
2-Jan-10 53
3-Jan-10 53
4-Jan-10 1
5-Jan-10 1
6-Jan-10 1
7-Jan-10 1
8-Jan-10 1
9-Jan-10 1
10-Jan-10 1
11-Jan-10 2
12-Jan-10 2
是否有另一个 Oracle 函数可以按照我的预期计算周数,还是我需要编写自己的函数?
EDIT
我正在尝试匹配 Crystal Reports 使用的逻辑。每个整周从星期日开始;一年的第一周从 1 月 1 日代表的那一天开始(例如,在 2010 年,1 月 1 日是星期五)。