oracle 中 如何将年周(例如1502)转换为年月日(20150105)?

如题所述

思路:先获取年份和周数,然后获取该年第一天是周几, 然后获取该年第一周的开始时间,然后加上(周数-1)*7,例子

with tmp as
 (select '1502' as a
    from dual
  union all
  select '1503' as a
    from dual
  union all
  select '1402' as a
    from dual
  union all
  select '0701' as a from dual)
select a,
       to_char(years - w + (weeks - 1) * 7,'yyyymmdd') as begin_week
  from (select a,
               years,
               weeks,
               --因为oracle 的周是从周日开始,星期一是2
               to_char(years, 'd') - 2 as w
          from (select a,
                       to_date('20' || substr(a, 1, 2) || '-01-01',
                               'yyyy-mm-dd') as years,
                       substr(a, -2, 2) as weeks
                  from tmp))

温馨提示:内容为网友见解,仅供参考
无其他回答

oracle 中 如何将年周(例如1502)转换为年月日(20150105)?
思路:先获取年份和周数,然后获取该年第一天是周几, 然后获取该年第一周的开始时间,然后加上(周数-1)*7,例子 with tmp as (select '1502' as a from dual union all select '1503' as a from dual union all select '1402' as a from dual union all select '0...

相似回答