Oracle中取得日期所在周数的方法有to_char(date1,'IW')或to_char(date1,'WW'),'IW'是ISO标准周,“如果一年当中第52周别之后至当年的12月31日之间,还有大于或等于4天的话,则定为当年的第53周,否则剩余这些天数被归为下一年的第1周;如果在不足52周别的话,则以下一年的时间来补;每周固定的从周一开始作为本周的第1天,到周日作为本周的第7天”;'WW'是ORACLE自定义的标准周,“它的含义是每年的1月1日作为当年的第一周的第一天(不管当年的1月1日是星期几)”。
除了IW和WW格式,还有W:一个月的第几周,按照ORACLE自定义的标准周来返回周数;FMWW:从该年1月1号(不考虑属星期几)开始7天为第一周,第二周是从该年第8天开始再7天,直到12月31日(这一点和网上一些文章不同,对不对到oracle中试一下就知道了,反正在Oracle10g中试的是我这样的,FMWW与WW的不同,也许仅是得到出周数数值后者一定是两位数的,如第1周,WW得出的就是01,而FMWW是1)。
除to_char,还有trunc函数也可用以上这些参数,在trunc中W是按照ORACLE标准周定义返回所在月该周的第一天,跨月则周数重新计,从该月第一天起算;IW按ISO标准周返回该周的第一天(即周一);WW为ORACLE标准周,返回所在周的第一天;FMWW和WW相同,因此FMWW与WW仅在跨年时取周的第一天与IW可能会有不同,IW可能会取到前一年的日期,而FMWW和WW一定是1月1日。
>> 除非说明均为原创,如转载请注明来源于http://www.stormcn.cn/post/2058.html