SELECT to_char(SYSDATE,'yyyymmdd')-to_number(to_char(SYSDATE,'d')-1)-6,to_char(SYSDATE,'yyyymmdd')-to_number(to_char(SYSDATE,'d')-1) from dual
select case
when mod(1 + 7 - to_char(trunc(sysdate, 'MM'), 'D'), 7) +
trunc(sysdate, 'MM') + 28 - last_day(sysdate) > 0 then
0
else
1
end + 4
from dual
把其中sysdate替换为你的日期即可
如果想知道一个月有几个星期一,把mod括号中第一个1改为2即可,其他日期类推
具体你的周是怎么确定的?
select to_char(to_date('20090101','yyyymmdd')+rownum+7,'iw') column_name from dual connect by rownum<=to_date('20111201','yyyymmdd')-to_date('20090101','yyyymmdd')
思路:
1 用以上语句生成月份表(具体参数自己调一下)
2 然后和你要统计的表进行外连接,不存在的就是null ,用nvl(null,0) 表示统计数据为0
参考:
oracle中如何获取中文的周数
默认oracle中,通过
select to_char(sysdate,'ww'),to_char(sysdate,'yyyy') from dual可以获取到ORACLE的周数,但是这个给的周数以及年数是按照每年的第一天为第一周的算法,和我们平常的计算方法不一样,平常的算法是按照星期来计算的,经过查找资料,to_char提供了新的参数:如下:
select to_char(sysdate,'iw'),to_char(sysdate,'iyyy') from dual
这个是按照IW = Week of year (1-52 or 1-53) based on the ISO standard
通常的ww是按照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
比如2008年12月31日,按照不同的查询方式的查询结果如下:
select to_char(to_date('2008-12,31', 'yyyy-mm-dd'), 'ww') ww,
to_char(to_date('2008-12,31', 'yyyy-mm-dd'), 'yyyy') yyyy
from dual
查询结果
序号 周 年度
1 53 2008
select to_char(to_date('2008-12,31', 'yyyy-mm-dd'), 'iw') iw,
to_char(to_date('2008-12,31', 'yyyy-mm-dd'), 'iyyy') iyyy
from dual
oracle中最简单获取日期的方式是通过查询sysdate来获取。
语句如下:
select sysdate from dual;结果:
如果只获取日期部分:
select to_char(sysdate,'yyyy-mm-dd') from dual;结果:
SQL> select
2 CASE
3 WHEN TO_CHAR(to_date('201207','yyyymm'), 'D') = '1'
4 THEN to_date('201207','yyyymm')
5 ELSE
6 next_day(to_date('201207','yyyymm'),'星期日')
7 END AS "第一个星期日"
8 from
9 dual;
第一个星期
----------
2012-07-01
SQL>
SQL> select
2 CASE
3 WHEN TO_CHAR(to_date('201208','yyyymm'), 'D') = '1'
4 THEN to_date('201208','yyyymm')
5 ELSE
6 next_day(to_date('201208','yyyymm'),'星期日')
7 END AS "第一个星期日"
8 from
9 dual;
第一个星期
----------
2012-08-05
CASE WHEN 主要为了解决 当月1号, 刚好是星期日的 特殊情况!!!
以上就是关于ORACLE 如何获取前一星期的日期全部的内容,包括:ORACLE 如何获取前一星期的日期、oracle中怎么获取当前月有几个星期天啊、oracle,给定一段时间,按时间(周)统计数据记录条数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)