——日期计算,算第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.
================================================
—— 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关于时间/日期的操作
2012-04-09 23:12 8261.日期时间间隔操作 当前时间减去7分钟的时间 s ... -
oracle 数据库增量备份
2012-03-16 20:03 1112EXP和IMP是Oracle提供的一种逻辑备份工具。逻辑备份创 ... -
oracle start with connect by 用法
2012-02-19 23:58 984oracle 提供了start with connect by ... -
Oracle数据导入导出imp/exp
2012-02-09 17:38 584Oracle数据导入导出imp/exp 功能:Oracle数 ... -
性能监控SQL语句
2011-12-23 13:51 795分析表 analyze table tablename co ... -
常用SQL语句
2011-12-23 13:50 944查找数据库中所有字段 以对应的表 select C.colu ... -
安装到最后的两个脚本作用
2011-12-06 18:32 1009在linux下安装Oralce的时候,最后会让你以root的身 ... -
ORACLE中一个字符占多少字节
2011-12-01 22:07 3822在oracle中一个字符特别是中文占几个字节是不同的。 比如 ... -
PL/SQL流程控制
2011-12-01 14:55 770------------------------------- ... -
提高SQL效率
2011-12-01 00:13 991下面就某些SQL 语句的 where 子句编写中需要注意 ... -
“exists”和“in”的效率问题
2011-11-30 23:49 980有两个简单例子,以说明 “exists”和“in”的效率问题 ... -
Oracle建立全文索引详解
2011-11-30 20:42 14441.全文检索和普通检索的区别 不使用Oracle text功 ... -
全文检索CLOB
2011-11-30 12:00 958建议使用全文检索(FULL TEXT SEARCH) ... -
Oracle中TO_DATE格式
2011-11-16 13:17 801TO_DATE格式(以时间:2007-11-02 13:4 ... -
Oracle 索引 详解
2011-11-15 13:00 25994Oracle 索引 详解 ... -
Oracle SQL中的IN 和 EXSITS区别总结
2011-11-15 11:06 975IN 确定给定的值是否与子查询或列表中的值相匹配。 EX ... -
Oracle 字符集的查看和修改
2011-11-14 23:09 902一、什么是Oracle字符集 ... -
Oracle Flashback技术总结
2011-11-14 01:06 933Flashback 技术是以Undo segment中的内容为 ... -
oracle日志归档模式改变
2011-11-14 00:15 1064在Oracle数据库中,主要 ... -
如何最大程度的 把表空间里面的数据给抢救出来
2011-11-03 16:18 1222今天一朋友问到一个比较有意识的问题: 如果一个表空间,其中一个 ...
相关推荐
Oracle数据库的周数计算 日期计算,算第n周的第一天及最后一天是几号。 公式...
oracle sql 根据年份、周数取日期
商品数据挖掘:数据分析库存周数计算、库存优化.doc
选择一个时间自动计算周数,自己写的,有什么意见可以提出来,大家一起交流
怀孕天数周数计算器是一个能够自动计算和显示怀孕天数、预产期和剩余天数的小工具。 为老婆制作的,vb6编制的。 对前一版本稍有改动。
因为线上查找过大部分的获取将星期一作为一周开始的周数的思路在特定日期都有一些问题,因项目需要有此功能,经过项目验证,计算准确无误(未发现有任何日期计算错语)。例如: select [dbo].[get_weekNumber]('2021...
pb在sqlserver数据库下生成工作日历周数的数据窗口.zip
输入年月日,可计算出年积日和GPS周。可区分闰年平年。
Java 语言的Calendar(日历),Date(日期),和DateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分。...下面这篇文章就给大家介绍了如何利用Java中Calendar计算两个日期之间的天数和周数,下面来一起看看吧。
给定两个日期A和B,格式如:2009-9-09 A所在的周为第1周 计算到B日期时,是第几周
怎么计算Excel2021中当前日期所在的周数.docx
有关日期与周数的相互转换,当日期在星期五以前返回本周,否则返回下一周。一周的开始是星期一
一共有两个方法,获取每个月有几周和获取当前登录时间是属于该月的第几周,测试没问题,已经用到实际项目中运行,文档中有联系方式,望跟各位大神交流
计算某日为星期几,很不错的vc源码,感兴趣的朋友可以看看。
1、动态设置判断条件 2、动态设置每周的第一天
课程:数据库原理与应用 "教师姓名 " "授课班级 " "授课形式 "理论 " "授课周数 "第1周 "授课时数 "4 "使用教具 "多媒体 " "授课章节名"第一章 数据库的基本概念 " "称 " " "教学目的 "掌握数据库概念; " " "学会...
有秒显示,同时有时间更新,可调整,及时显示秒数。通过增加时间响应函数添加时间来调用系统最新,最实时的情况来反应,更新屏幕每秒。
利用C#写的一个计算GPS周的小程序,界面简单,方便新手下载GNSS星历之前日期转换
能够将UTC标准时间转化成为GPS标准时间(包括GPS周数和周内秒数)。(UTC standard time can be transformed into GPS standard time (weeks and weeks, including GPS seconds).)
为了在这个夏天躁起来,我们列举了8个抱怨开源关系型数据库的理由。下面列举的理由中不于 MySQL,有一些是针对关系型数据库的。如果我们没有理清楚关系型数据库和 MySQL,我们将会永远陷入90年代的思想上。我们...