oracle周数计算
===========================================================
作者: keyneslin(http://keyneslin.itpub.net)
发表于: 2005.04.29 14:58
分类: ORACLE
出处: http://keyneslin.itpub.net/post/5557/28126
---------------------------------------------------------------
================================================
--日期计算,算第n周的第一天及最后一天是几号。  by keynes 2005.04.29
================================================

-- ww的算法为每年1月1日为第一周开始,date+6为每一周结尾
-- 例如20050101为第一周的第一天,而第一周的最后一天为20050101+6=20050107
-- 公式 每周第一天  :date + 周 * 7 - 7
--      每周最后一天:date + 周 * 7 - 1

不管怎么编排格式都会跑掉,真气人 ~><~

=========================================================================
--日期计算,算第n周的第一天及最后一天是几号。  by keynes 2005.04.29
=========================================================================
-- ww的算法为每年1月1日为第一周开始,date+6为每一周结尾
-- 例如20050101为第一周的第一天,而第一周的最后一天为20050101+6=20050107
-- 公式 每周第一天  :date + 周 * 7 - 7
--      每周最后一天:date + 周 * 7 - 1
-- 如果以ww格式为主,第1、17周的起迄如下
127.0.0.1:asdb:WF>select to_date('20050101','yyyymmdd') + 1*7-7,to_date('20050101','yyyymmdd') + 1*7-1 from dual;

TO_DATE(' TO_DATE('
--------- ---------
01-JAN-05 07-JAN-05

127.0.0.1:asdb:WF>select to_date('20050101','yyyymmdd') + 17*7-7,to_date('20050101','yyyymmdd') + 17*7-1 from dual;

TO_DATE(' TO_DATE('
--------- ---------
23-APR-05 29-APR-05

Elapsed: 00:00:00.00

-- 验证如下
127.0.0.1:asdb:WF>select to_char(to_date('20050422','yyyymmdd'),'ww') as weekn,to_char(to_date('20050423','yyyymmdd'),'ww') as week1,to_char(to_date('20050429','yyyymmdd'),'ww') as week2,to_char(to_date('20050430','yyyymmdd'),'ww') as weekn2 from dual;

WEEK WEEK WEEK WEEK
---- ---- ---- ----
16   17   17   18

Elapsed: 00:00:00.00
127.0.0.1:asdb:WF>

-- iw的算法为星期一至星期日算一周,且每年的第一个星期一为第一周,
-- 例如20050101为星期六,所以用iw的算法是前年的53周,而20050103之后才是第一周的开始。
-- 公式 每周第一天  :next_day(date) + 周 * 7 - 7
--      每周最后一天:next_day(date) + 周 * 7 - 1
-- 如果以iw格式为主,第1、17周的起迄如下
127.0.0.1:asdb:WF>select next_day(to_date('20050101','yyyymmdd'),'MONDAY')+ 1 * 7 - 7 as first_day,next_day(to_date('20050101','yyyymmdd'),'MONDAY')+ 1 * 7 - 1 as last_day from dual;

FIRST_DAY LAST_DAY
--------- ---------
03-JAN-05 09-JAN-05

Elapsed: 00:00:00.00
127.0.0.1:asdb:WF>

127.0.0.1:asdb:WF>select next_day(to_date('20050101','yyyymmdd'),'MONDAY')+ 17 * 7 - 7 as first_day,next_day(to_date('20050101','yyyymmdd'),'MONDAY')+ 17 * 7 - 1 as last_day from dual;

FIRST_DAY LAST_DAY
--------- ---------
25-APR-05 01-MAY-05

Elapsed: 00:00:00.00
127.0.0.1:asdb:WF>

-- 验证如下
127.0.0.1:asdb:WF>select to_char(to_date('20050424','yyyymmdd'),'iw') as weekn,to_char(to_date('20050425','yyyymmdd'),'iw') as week1,to_char(to_date('20050501','yyyymmdd'),'iw') as week2,to_char(to_date('20050502','yyyymmdd'),'iw') as weekn2 from dual;

WEEK WEEK WEEK WEEK
---- ---- ---- ----
16   17   17   18

Elapsed: 00:00:00.00

其它:
--== 查今天是 "本月" 的第几周
SELECT TO_CHAR(SYSDATE,'WW') - TO_CHAR(TRUNC(SYSDATE,'MM'),'WW') + 1 AS "weekOfMon" from dual;

SELECT TO_CHAR(SYSDATE,'W') AS "weekOfMon" from dual;

--== 查今天是 "今年" 的第几周
select to_char(sysdate,'ww') from dual;

select to_char(sysdate,'iw') from dual;

附注:
上文所提之iw及ww格式在doc内解释如下
IW = Week of year (1-52 or 1-53) based on the ISO standard
WW = Week of year (1-53) where week 1 starts on the first day of the year and continues to the seventh day of the year.

oracle周数计算相关推荐

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

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

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

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

  3. Java关于周跨年的周数计算

    摘要:从图中可以看出2016年的1月1日是从周五开始的,意思就是说2016年1月1日所在的这一周既是2015年的最后一周也是2016年的第一周,也就说这一周跨年了.编程是要求严谨的,这么算最后肯定会出 ...

  4. oracle如何查当前日期所在周,Oracle查询当前日期对应周数

    在Oracle中查询当前日期对应的SQL oracle常见的日期格式有Date & Timestamp 其中Data常用的格式为:YYYY-MM-DD HH24-MI-SS 其中Timesta ...

  5. 反思项目最新周数的反复反复修改

    项目中很多的计算都是关于最新周数的变动进行计算的! 项目初期 很多表没有添加年份字段,一跨年修改表结构.分表: 代码中很多的地方没考虑到周数的更迭,会1-52的连续变化: 导致 连续的修改,持续了三周 ...

  6. Java8使用LocalDateTime获取正确的第几周和计算日期最佳方式

    先上问题 public static void main(String[] args) {//使用DateTimeFormatter获取当前周数DateTimeFormatter dateTimeFo ...

  7. Oracle存储过程取当天为当年的第几周(自然周),以及当年总周数

    文章目录 前言 逻辑分析 计算当前周数 计算当年总周数 存储过程代码 关于iw,ww,w的一些用法 前言 业务需要会对未来会对一张表进行分表操作,由定时器每周(自然周)创建一次子表,并以当前周数命名表 ...

  8. java 跨年 周计算公式_如何跨年计算 两日期之间相隔的周数 with java8 time API

    ===============================2016年9月版 分割线======================================== 之前版本的我太simple了.. ...

  9. JavaScript根据用户输入动态计算周数

    今天遇到了个问题:根据用户输入动态计算输入日期为第几周. 当然我写的前端肯定不是最好的,至少已经解决了这个问题. 代码如下: function weeksCalculation(startDay) { ...

  10. 计算起始时间与结束时间之间有哪些月份和周数

    estLabourMonth() {const months = []const monthCol = []const start = new Date(this.form.project_start ...

最新文章

  1. LeetCode19. Remove Nth Node From End of List 删除链表中的倒数第n个位置的元素
  2. Clone Detective java home
  3. ERROR 1044 (42000)报错的解决
  4. 200 ssl服务器证书无效_ssl证书无效怎么办?
  5. 面试 Google, 我失败了!
  6. leetcode 417. Pacific Atlantic Water Flow | 417. 太平洋大西洋水流问题(DFS,经典“感染”思路)
  7. uni中动态加载class_Java基础·类加载、反射
  8. 仿百度手机助手标题栏透明度随ListView或ScrollView滚动改变的实现方法
  9. 分布式集群中网络分区问题
  10. vscode C语言中文输出乱码问题的解决
  11. yarn安装JEST报错:EPERM: operation not permitted, unlink 解决方法
  12. 奇技淫巧之dummy网卡
  13. 蚂蚁金服 花呗借呗 招聘公告
  14. [tamarin系列之1] tamarin简介
  15. 无人机寻迹要两个单片机吗_基于OpenMV的循迹无人机设计
  16. P4语言的特性、P4语言和P4交换机的工作原理和流程简介
  17. Ehcache RIM
  18. VR,正在上演一出“风月宝鉴”
  19. 全国考研计算机成绩排名,全国33所计算机考研名校跨考难度系数排名
  20. 激光主要性能参数(一)--波长

热门文章

  1. win10系统与时间服务器同步超时,Win10时间同步出错怎么办 Win10时间同步出错解决方法...
  2. 通过PD4ML把html转pdf(包含显示页眉页脚,插入图片,显示页数)
  3. Windows 10 无法访问共享的解决办法大全
  4. 地图,GPS位置地图坐标系:WGS-84(GPS)、GCJ-02(Google地图)、BD-09(百度地图),OpenGIS
  5. 电脑发到,电脑电影怎么传到手机_把电脑上的电影传到手机上的详细教程
  6. java 判断时间24小时_Java 判断时间是否超过24小时
  7. 营在微博:53家优秀企业微博运营案例集
  8. 在境内服务器、虚拟主机上运行未备案域名方法,cf worker反向代理
  9. 产品分析报告:潮汐-从番茄钟到场景化放松空间
  10. java web 登陆验证 弹窗_带你玩转JavaWeb开发之四 -如何用JS做登录注册页面校验