首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux数据库>oracle>正文

教你快速掌握Oracle数据库的周数计算

http://www.oklinux.cn  2008-03-18  来源: 赛迪网 刘明昭  会员收藏  游客收藏  【 】 

【赛迪网-IT技术报道】--日期计算,算第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;

共2页: 上一页 1 [2] 下一页

上一篇:带你轻松接触Oracle DBLink的简单运用   下一篇:深入讲解Oracle数据库的多栏输出语句


收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·深入讲解Oracle数据库的多栏输出语句
·带你轻松接触Oracle DBLink的简单运用
·如何使用pipeline function获得实时输出
·实例讲解"Oracle"数据库的分页显示
·Oracle数据库中如何对时间格式进行处理
·Oracle利用传输表空间导出导入数据的步骤
·讲解jython访问Oracle数据库的具体步骤
·通过幸存的Oracle文件修复Oracle9i数据
·详细讲解获得当前"SCN"的几种有效方式
·快速解决"Oracle"数据库中的常见问题
·用SYS执行全文索引的建立时出现权限不足
·实例讲解Oracle中一些关于权限的数据字典
·详细讲解Oracle表分区的相关概念及其优点
·教你快速掌握“外连接”的两种标准写法
·带你轻松掌握行分链与行迁移的相关概念
·在存储过程中拥有"role"权限的特殊性
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·讲解jython访问Oracle数据库的具体步骤
·Oracle利用传输表空间导出导入数据的步
·Oracle数据库中如何对时间格式进行处理
·如何使用pipeline function获得实时输
·深入讲解Oracle数据库的多栏输出语句
·带你轻松接触Oracle DBLink的简单运用
·实例讲解"Oracle"数据库的分页显示
·通过幸存的Oracle文件修复Oracle9i数据
·详细讲解获得当前"SCN"的几种有效方式
·快速解决"Oracle"数据库中的常见问题
·用SYS执行全文索引的建立时出现权限不
·实例讲解Oracle中一些关于权限的数据字
  阅读排行
·如何修改遗失的MySQL的ROOT用户密码
·详解远程SHELL下安装配置RedHat ES 5的
·教你如何将MySQL数据库的密码恢复
·教你在MySQL从口令恢复设置的密码
·在 Oracle Enterprise Linux 上升级到
·oracle9i installation on fedora core
·Oracle Instant client介绍
·Oracle高级复制(同步复制)配置步骤详细
·用Oracle归档日志进行恢复的方法
·Oracle 数据库存储结构简介
·Linux下的Oracle数据库编程详解
·Linux下Oracle9i RMAN备份及恢复步骤介
·带你轻松接触一些比较常用的sql*plus命
·Oracle的快照复制
·Oracle HA 在Unix上双机环境的安装指南
网摘收藏: