oracle中怎样获取一周的日期,Oracle如何获取某年每月第N周星期X的所有日期
Oracle如何获取某年每月第N周星期X的所有日期
要求:列出2012年每月第二周星期二的日期
两种理解:
www.2cto.com
1.认为每周第一天为星期一(中国习惯),且需求为第二周周二(非第二个周二)
[sql]
--基本原理为用下周日之日期,利用decode判断是上推5日还是下推2日
[sql]
select next_day(add_months(trunc(sysdate,'yyyy'),rownum-1),1)
+decode(next_day(add_months(trunc(sysdate,'yyyy'),rownum-1),1),add_months(trunc(sysdate,'yyyy'),rownum-1)+7,-5,2)
from dual connect by rownum<13;
output:
2012.01.03 00:00:00
2012.02.07 00:00:00
2012.03.06 00:00:00
2012.04.03 00:00:00
2012.05.08 00:00:00
2012.06.05 00:00:00
2012.07.03 00:00:00
2012.08.07 00:00:00
2012.09.04 00:00:00
2012.10.09 00:00:00
2012.11.06 00:00:00
2012.12.04 00:00:00
2013.01.08 00:00:00
www.2cto.com
2.认为每周第一天为星期日(外国习惯),且需求为第二周周二(非第二个周二)
[sql]
--基本原理为用下周六之日期,利用decode判断是上推4日还是下推3日
select next_day(add_months(trunc(sysdate,'yyyy'),rownum-1),7)
+decode(next_day(add_months(trunc(sysdate,'yyyy'),rownum-1),7),add_months(trunc(sysdate,'yyyy'),rownum-1)+7,-4,3)
from dual connect by rownum<13;
output:
2012.01.10 00:00:00
2012.02.07 00:00:00
2012.03.06 00:00:00
2012.04.10 00:00:00
2012.05.08 00:00:00
2012.06.05 00:00:00
2012.07.10 00:00:00
2012.08.07 00:00:00
2012.09.04 00:00:00
2012.10.09 00:00:00
2012.11.06 00:00:00
2012.12.04 00:00:00
2013.01.08 00:00:00
www.2cto.com
3.认为每周第一天为星期日(外国习惯),且需求为每月第二个星期二
[sql]
--基本原理为先构造全年之日期,再利用to_char函数
--to_char(c1,'w') = 2 表每月第二周
--to_char(c1,'d') = 3 表周二,值为1表周日
select c1
from
(
select to_date(2012||'-01-01','yyyy-mm-dd')+level c1
from dual
connect by level < 366
)
where to_char(c1,'w') = 2 and to_char(c1,'d') = 3;
output:
2012.01.10 00:00:00
2012.02.14 00:00:00
2012.03.13 00:00:00
2012.04.10 00:00:00
2012.05.08 00:00:00
2012.06.12 00:00:00
2012.07.10 00:00:00
2012.08.14 00:00:00
2012.09.11 00:00:00
2012.10.09 00:00:00
2012.11.13 00:00:00
2012.12.11 00:00:00
总结:
不同理解可以得出不同结果,最好能请客户提供结果,以利判断。
附:
用于 date/time 转换的模板
模板 描述
HH 一天的小时数 (01-12)
HH12 一天的小时数 (01-12)
HH24 一天的小时数 (00-23)
MI 分钟 (00-59)
SS 秒 (00-59)
SSSS 午夜后的秒 (0-86399)
AM or A.M. or PM or P.M. 正午标识(大写)
am or a.m. or pm or p.m. 正午标识(小写)
Y,YYY 带逗号的年(4 和更多位)
YYYY 年(4和更多位) www.2cto.com
YYY 年的后三位
YY 年的后两位
Y 年的最后一位
BC or B.C. or AD or A.D. 年标识(大写)
bc or b.c. or ad or a.d. 年标识(小写)
MONTH 全长大写月份名(9字符)
Month 全长混合大小写月份名(9字符)
month 全长小写月份名(9字符)
MON 大写缩写月份名(3字符)
Mon 缩写混合大小写月份名(3字符)
mon 小写缩写月份名(3字符)
MM 月份 (01-12)
DAY 全长大写日期名(9字符)
Day 全长混合大小写日期名(9字符)
day 全长小写日期名(9字符)
DY 缩写大写日期名(3字符)
Dy 缩写混合大小写日期名(3字符)
dy 缩写小写日期名(3字符)
DDD 一年里的日子(001-366)
DD 一个月里的日子(01-31)
D 一周里的日子(1-7;SUN=1)
W 一个月里的周数
WW 一年里的周数
CC 世纪(2 位)
J Julian 日期(自公元前4712年1月1日来的日期)
Q 季度
RM 罗马数字的月份(I-XII;I=JAN)-大写
rm 罗马数字的月份(I-XII;I=JAN)-小写
oracle中怎样获取一周的日期,Oracle如何获取某年每月第N周星期X的所有日期相关推荐
- oracle 的exp是什么,oracle中exp和imp是什么,oracle中exp和imp有何区别 | 学步园
oracle中exp和imp是什么,oracle中exp和imp有何区别.exp和imp的输入都是名字和值对:exp parameter_name=value 或exp parameter_name= ...
- java 根据某个日期查询出是某年的第几周
文章目录 前言 一.java根据某个日期查询出是某年的第几周 前言 做记录用: 一.java根据某个日期查询出是某年的第几周 public class WeekByDate {public stati ...
- oracle中常见ck和fk是什么,Oracle常用知识总结
1.曾经不小心把开发库的数据库表全部删除,当时吓的要死.结果找到下面的语句恢复到了1个小时之前的数据!很简单. 注意使用管理员登录系统: select * from 表名 as of timestam ...
- oracle中如何创建一个过程,如何开发ORACLE存储过程
一. 概述 Oracle存储过程开发的要点是: • 使用Notepad文本编辑器,用Oracle PL/SQL编程语言写一个存储过程; • 在Oracle数据库中创建一个存储过程; • 在Oracle ...
- oracle中存储过程和函数有什么区别,Oracle中存储过程和函数的区别
Oracle中存储过程和函数的区别 存储过程和函数: www.2cto.com 例子: [sql] //创建过程 create or replace procedure add_emailinfo( ...
- oracle中overwrite写法,【学习笔记】Oracle 11G新特性restart的深入研究案例
[学习笔记]Oracle 11G新特性restart的深入研究案例 时间:2016-11-26 22:35 来源:Oracle研究中心 作者:网络 点击: 次 天萃荷净 Oracle研究中 ...
- oracle中in函数在子查询使用,Oracle In
oracle函数 的 Oracle In 在本教程中,您将学习如何使用Oracle IN运算符来确定值是否与列表或子查询中的任何值相匹配. Oracle IN操作符介绍 Oracle IN运算符确定值 ...
- Oracle中随机抽取N条记录,使用Oracle分析函数随机抽取N条记录
模拟一个歌曲表,有歌曲ID和作者ID,并且初始化一些数据 create table music( music_id int primary key, userid int ); 模拟一个歌曲表,有歌曲 ...
- Oracle中动态拼接参数怎么传,急oracle 动态游标传日期参数是如何传的呢,请赐教,多谢...
当前位置:我的异常网» Oracle开发 » 急oracle 动态游标传日期参数是如何传的呢,请赐教 急oracle 动态游标传日期参数是如何传的呢,请赐教,多谢 www.myexceptions.n ...
最新文章
- 生物信息学、系统生物学 期刊 会议
- android h5输入框被键盘遮挡,APP调用H5开发页面,输入框被软键盘遮挡问题的解决方案...
- oracle0级备份和全备份实录_蓝光硬盘备份管理系统在档案系统的应用
- boost::callable_traits添加member右值引用的测试程序
- 1337:【例3-2】单词查找树
- mvc动态添加html控件,jquery – MVC3 Html.DisplayFor – 可以让这个控件生成一个ID吗?...
- MySQL 语句优化 ICP
- 招商:笔试题(数组统计重复次数,面包累计问题)
- Markdown编辑器MWeb如何建立静态网站/博客
- mysql的索引(一)
- PRAE插件开发遇到的一个坑
- MySQL数据库学习资料(一)
- com.mysql.jdbc.Connection.isValid(I)Z错误解决办法
- 导航recovery机制
- 心灵捕手——走进内心世界
- 从零到一制作个人网站
- 【桶哥的问题——吃桶-简化版】【洛谷p2671】求和
- python基础语法和变量
- linux 时间怎么求差值_linux批量计算时间差脚本——awk
- 洛克菲勒:世界上只有两种人头脑聪明...