Oracle SQL计算周
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计算周相关推荐
- oracle连续周数,详细讲解Oracle数据库的“周数计算”
详细讲解Oracle数据库的"周数计算"以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! --日期计算 ...
- oracle 求一年多少天,SQL 计算一年有多少天
SQL 计算一年有多少天,计算当前年份有多少天. SQL 计算一年有多少天 问题描述 计算当前年份有多少天. SQL 计算一年有多少天 解决方案 计算当前年份有多少天,等同于计算下一年的第一天和当前年 ...
- oracle 怎么计算年数,详细讲解Oracle数据库的“周数计算”
详细讲解Oracle数据库的"周数计算" 2008-03-18 eNet&Ciweek 2)iw的算法为星期一至星期日算一周,且每年的第一个星期一为第一周, 例如20050 ...
- 使用SQL 计算一组数据的峰度、偏度 公式依据excel的KURT函数和SKEW函数 Oracle 数据库
使用SQL 计算一组数据的峰度.偏度 公式依据excel的KURT函数和SKEW函数 因为工作原因,要把excel的KURT和SKEW函数在Oracle实现出来并统计,在网上找了半天没有答案..只能自 ...
- oracle发票验证,通过使用Oracle SQL脚本进行计算(总发票)的多个表的更新记录...
我有一个SERVICE表,该表存储一个表中的服务数量,然后链接到连接到INVOICE的LINE表.通过使用Oracle SQL脚本进行计算(总发票)的多个表的更新记录 我想要创建一个触发器,根据SER ...
- sql 计算周环比wow_通过对周进行编号计算周环比(WOW)
上周我们分享了如何在Power Pivot中对月份进行编号,今天我们和大家一起看一下如何通过对周进行编号,来计算周环比(WOW). 先来看一下我们的示例模型: 模型由销售记录表和日期表组成,我们已经创 ...
- Oracle SQL高级编程——分析函数(窗口函数)全面讲解
Oracle SQL高级编程--分析函数(窗口函数)全面讲解 注:本文来源于:<Oracle SQL高级编程--分析函数(窗口函数)全面讲解> 概述 分析函数是以一定的方法在一个与当前行相 ...
- Oracle 时间差计算
GPS平台.网站建设.软件开发.系统运维,找森大网络科技! https://cnsendnet.taobao.com 来自森大科技官方博客 http://www.cnsendblog.com/inde ...
- Oracle SQL学习笔记
参考:FreeIT-Oracle教程 实用sql 0.1.update内容中含有单引号 方案:用两个单引号代替一个单引号 select to_char('aa''否''aa') from dual;- ...
- oracle向前推一个小时,oracle SQL里常用的时间函数,经典推荐
oracle SQL里常用的时间函数,经典推荐 (2009-03-11 23:16:54) 标签: 杂谈 常用日期型函数 1.Sysdate 当前日期和时间 SQL> Select sysdat ...
最新文章
- Dokku和Docker的完美配合
- WAL streaming (max_wal_senders 0) requires wal_level replica or logical
- Android应用程序键盘(Keyboard)消息处理机制分析(17)
- t test table
- 高等数学下-赵立军-北京大学出版社-题解-练习12.2
- c语言诡异程序,为什么C语言诡异离奇、缺陷重重,却获得了巨大的成功?
- jz2440开发板修改UBOOT支持NAND FLASH
- 汇编中调用函数(类比c
- php oracle 中文字段,怎么解决php oracle乱码问题
- 红与黑(信息学奥赛一本通-T1216)
- 基于MNIST数据集的最优参数的方法的比较
- ig 焊接机器人_发那科机器人焊接应用的IO配置(总线型)
- 区块链 FISCO BCOS网络端口讲解
- github安装python包_使用PyCharm从GitHub安装Python包
- 单片机c语言 教案,《单片机C语言》 课程教案.doc
- pr怎么导出预设_怎样用Pr导出清晰度高的视频?
- html如何插入动图,动态图片如何插入到PPT里?
- 微信公众号发红包功能,现金红包、裂变红包接口
- 谈谈德国大学的电子专业
- access查询女教师所有的信息_大学计算机2(Access数据库基础)_章节测验,期末考试,慕课答案查询公众号...
热门文章
- 各种工业以太网技术浅析
- c语言max条件句,if条件句(if条件句的四种用法)
- 圆圈1计算机语言,LOGO编程新理念 画圆和圆弧1★
- [渝粤教育] 四川大学 土木工程概论 参考 资料
- h5中的结构元素header、nav、article、aside、section、footer介绍
- 基于uA741 PWM发生器
- ai跟随路径_AI 路径寻找器(形状组合工具)-怎么使用,使用教程
- MFC使用SaveAs函数保存Excel文件时,弹出“文件已存在”问题
- in predict assert self.binded and self.params_initialized AssertionError
- 简述数据可视化制作流程