WITH x AS
     (select TO_DATE('2015','YYYY') qry_year from dual),
     x0 AS --查询年份的第一天,当年12月28号
     (SELECT TRUNC(qry_year,'YYYY') AS first_day, 
             to_date(to_char(qry_year,'yyyy')||'-12-28','yyyy-mm-dd') AS last_day
             FROM x),
     x1 AS --第一天为周几TO_CHAR(xx,'D')返回1-7(周日-周六)
     (select  TO_CHAR(x0.first_day,'D') week_idx from x0) ,
     x2 AS --为了方便计算,改成2-8(周一-周日)
     (select decode(week_idx,'1','8',week_idx) week_idx2 from x1),
     x3 AS --是否多余4天
     (select SIGN(5-week_idx2) flag from x2),
     x4 AS --当-1时,年初几天为第一周,否则为上一年的末周
     (select decode(flag,-1,0,-1) ratio from x3)
     --NEXT_DAY(xx,2)返回下一个星期一的日期(1表示星期日,2代表星期一)
     --to_char(last_day,'IW')当年12月28号为最大周数
     select LEVEL,
            NEXT_DAY(first_day+(LEVEL-1+ratio)*7,2) week_first_day,
            NEXT_DAY(first_day+(LEVEL-1+ratio)*7,2)+6 week_last_day
      from x0 left join x4 on 1=1

CONNECT BY LEVEL<=to_char(last_day,'IW');

/*IW是ISO标准周,它的含义是ISO标准周以周别为“主线”,每年最多可以有53个周别,
但是每年至少要包含52个周别;如果一年当中第52周别之后至当年的12月31日之间,
还有大于或等于4天的话,则定为当年的第53周,否则剩余这些天数被归为下一年的第1周;
如果在不足52周别的话,则以下一年的时间来补;每周固定的从周一开始作为本周的第1天,到周日作为本周的第7天;
比如:在Oracle中 2012年01月01号依然属于IW周别2011年的第52周的第7天。这个用到的比较多*/

参考http://blog.csdn.net/liangweiwei130/article/details/37930383

Oracle SQL计算周相关推荐

  1. oracle连续周数,详细讲解Oracle数据库的“周数计算”

    详细讲解Oracle数据库的"周数计算"以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! --日期计算 ...

  2. oracle 求一年多少天,SQL 计算一年有多少天

    SQL 计算一年有多少天,计算当前年份有多少天. SQL 计算一年有多少天 问题描述 计算当前年份有多少天. SQL 计算一年有多少天 解决方案 计算当前年份有多少天,等同于计算下一年的第一天和当前年 ...

  3. oracle 怎么计算年数,详细讲解Oracle数据库的“周数计算”

    详细讲解Oracle数据库的"周数计算" 2008-03-18 eNet&Ciweek 2)iw的算法为星期一至星期日算一周,且每年的第一个星期一为第一周, 例如20050 ...

  4. 使用SQL 计算一组数据的峰度、偏度 公式依据excel的KURT函数和SKEW函数 Oracle 数据库

    使用SQL 计算一组数据的峰度.偏度 公式依据excel的KURT函数和SKEW函数 因为工作原因,要把excel的KURT和SKEW函数在Oracle实现出来并统计,在网上找了半天没有答案..只能自 ...

  5. oracle发票验证,通过使用Oracle SQL脚本进行计算(总发票)的多个表的更新记录...

    我有一个SERVICE表,该表存储一个表中的服务数量,然后链接到连接到INVOICE的LINE表.通过使用Oracle SQL脚本进行计算(总发票)的多个表的更新记录 我想要创建一个触发器,根据SER ...

  6. sql 计算周环比wow_通过对周进行编号计算周环比(WOW)

    上周我们分享了如何在Power Pivot中对月份进行编号,今天我们和大家一起看一下如何通过对周进行编号,来计算周环比(WOW). 先来看一下我们的示例模型: 模型由销售记录表和日期表组成,我们已经创 ...

  7. Oracle SQL高级编程——分析函数(窗口函数)全面讲解

    Oracle SQL高级编程--分析函数(窗口函数)全面讲解 注:本文来源于:<Oracle SQL高级编程--分析函数(窗口函数)全面讲解> 概述 分析函数是以一定的方法在一个与当前行相 ...

  8. Oracle 时间差计算

    GPS平台.网站建设.软件开发.系统运维,找森大网络科技! https://cnsendnet.taobao.com 来自森大科技官方博客 http://www.cnsendblog.com/inde ...

  9. Oracle SQL学习笔记

    参考:FreeIT-Oracle教程 实用sql 0.1.update内容中含有单引号 方案:用两个单引号代替一个单引号 select to_char('aa''否''aa') from dual;- ...

  10. oracle向前推一个小时,oracle SQL里常用的时间函数,经典推荐

    oracle SQL里常用的时间函数,经典推荐 (2009-03-11 23:16:54) 标签: 杂谈 常用日期型函数 1.Sysdate 当前日期和时间 SQL> Select sysdat ...

最新文章

  1. Dokku和Docker的完美配合
  2. WAL streaming (max_wal_senders 0) requires wal_level replica or logical
  3. Android应用程序键盘(Keyboard)消息处理机制分析(17)
  4. t test table
  5. 高等数学下-赵立军-北京大学出版社-题解-练习12.2
  6. c语言诡异程序,为什么C语言诡异离奇、缺陷重重,却获得了巨大的成功?
  7. jz2440开发板修改UBOOT支持NAND FLASH
  8. 汇编中调用函数(类比c
  9. php oracle 中文字段,怎么解决php oracle乱码问题
  10. 红与黑(信息学奥赛一本通-T1216)
  11. 基于MNIST数据集的最优参数的方法的比较
  12. ig 焊接机器人_发那科机器人焊接应用的IO配置(总线型)
  13. 区块链 FISCO BCOS网络端口讲解
  14. github安装python包_使用PyCharm从GitHub安装Python包
  15. 单片机c语言 教案,《单片机C语言》 课程教案.doc
  16. pr怎么导出预设_怎样用Pr导出清晰度高的视频?
  17. html如何插入动图,动态图片如何插入到PPT里?
  18. 微信公众号发红包功能,现金红包、裂变红包接口
  19. 谈谈德国大学的电子专业
  20. access查询女教师所有的信息_大学计算机2(Access数据库基础)_章节测验,期末考试,慕课答案查询公众号...

热门文章

  1. 各种工业以太网技术浅析
  2. c语言max条件句,if条件句(if条件句的四种用法)
  3. 圆圈1计算机语言,LOGO编程新理念  画圆和圆弧1★
  4. [渝粤教育] 四川大学 土木工程概论 参考 资料
  5. h5中的结构元素header、nav、article、aside、section、footer介绍
  6. 基于uA741 PWM发生器
  7. ai跟随路径_AI 路径寻找器(形状组合工具)-怎么使用,使用教程
  8. MFC使用SaveAs函数保存Excel文件时,弹出“文件已存在”问题
  9. in predict assert self.binded and self.params_initialized AssertionError
  10. 简述数据可视化制作流程