ITPUB??ì3
2010数据库技术大会
ITPUB论坛 » Oracle开发 » sql实现当月日历


您有 2 条公共消息
  • 来自: 公共消息 标题: 3-5月ITPUB数据库 ... 内容: ITPUB与3月和5月分别安排了Oracle 11g DBA和Oracle性能优化培训,以及 ...
  • 来自: 公共消息 标题: ITPUB邮箱已经恢复 内容: ITPUB邮箱用户请注意,邮箱现在已经恢复 web访问地址 http://emai ...

    标题: sql实现当月日历
    离线 wngsheng
    中级会员



    精华贴数 0
    个人空间 0
    技术积分 489 (4758)
    社区积分 1395 (988)
    注册日期 2001-12-6
    论坛徽章:9
    2010新春纪念徽章祖国60周年纪念徽章ITPUB8周年纪念徽章生肖徽章2007版:狗生肖徽章2007版:羊生肖徽章2007版:牛
    生肖徽章2007版:猴2008北京奥运纪念徽章:花样游泳2008新春纪念徽章   

    发表于 2007-7-9 16:53 
    sql实现当月日历


    select max(su) su,max(mo) mo,max(tu) tu,max(we) we,max(th) th,max(fr) fr,max(sa) sa from
    (select case when d=1 then dd end su,
           case when d=2 then dd end mo,
           case when d=3 then dd end tu,
           case when d=4 then dd end we,
           case when d=5 then dd end th,
           case when d=6 then dd end fr,
           case when d=7 then dd end sa,
           d,w,iw
    from(
    select dates,to_char(dates,'dd') dd,to_number(to_char(dates,'d')) d,to_char(dates,'w') w,to_char(dates+1,'iw') iw from
    (select trunc(sysdate,'month')+level-1 dates from dual
    connect by rownum<last_day(sysdate)-trunc(sysdate,'month')
    )
    )
    )
    group by iw
    order by iw;


    环境:oracle 10g


    __________________
    在这片神奇的土地上,有一群神奇的奴隶,却都有着奴隶主的思想,每天都替神奇的奴隶主操心!!  :):)
    只看该作者    顶部
    在线/呼叫 junsansi
    无名扫把


    来自 bj
    精华贴数 10
    个人空间 17182
    技术积分 13671 (101)
    社区积分 3624 (500)
    注册日期 2006-7-17
    论坛徽章:302
    现任管理团队成员祖母绿玉石琵琶九尾狐狸蓝色妖姬铁扇公主
    铁扇公主2010新春纪念徽章2010年世界杯参赛球队:巴拉圭2010年世界杯参赛球队:乌拉圭生肖徽章2007版:鼠生肖徽章2007版:鼠

    发表于 2007-7-9 17:02 
    Re: sql实现当月日历



    QUOTE:
    最初由 wngsheng 发布

    select max(su) su,max(mo) mo,max(tu) tu,max(we) we,max(th) th,max(fr) fr,max(sa) sa from
    (select case when d=1 then dd end su,
           case when d=2 then dd end mo,
           case when d=3 then dd end tu,
           case when d=4 then dd end we,
           case when d=5 then dd end th,
           case when d=6 then dd end fr,
           case when d=7 then dd end sa,
           d,w,iw
    from(
    select dates,to_char(dates,'dd') dd,to_number(to_char(dates,'d')) d,to_char(dates,'w') w,to_char(dates+1,'iw') iw from
    (select trunc(sysdate,'month')+level-1 dates from dual
    connect by rownum<last_day(sysdate)-trunc(sysdate,'month')
    )
    )
    )
    group by iw
    order by iw;


    环境:oracle 10g


    不错,不过w和iw留1个即可


    __________________
    涂抹ORACLE--三思笔记上市啦
    相关:前往"涂抹ORACLE"专区 | 下载书中源码 | 浏览试阅章节 | 豆瓣评论
    购买:China-Pub | 当当 | 卓越 | 淘宝

    =======================================    我爱我佳
    扫地不过是我表面上的工作,我真正的身份其实是无名老僧------------------手里那根扫把~~~~
    只看该作者    顶部
    离线 hanjs
    高级会员


    来自 沈阳
    精华贴数 1
    个人空间 0
    技术积分 10496 (148)
    社区积分 52 (5930)
    注册日期 2006-7-30
    论坛徽章:20
    会员2007贡献徽章蓝色妖姬嫦娥授权会员2010新春纪念徽章生肖徽章2007版:马
    开发板块每日发贴之星2008北京奥运纪念徽章:铁人三项生肖徽章2007版:兔数据库板块每日发贴之星数据库板块每日发贴之星2008新春纪念徽章

    发表于 2007-7-9 17:03 
    不错,不过都有查出一年的了!


    __________________
    Database Concepts
    Database Performance Tuning Guide and Reference
    只看该作者    顶部
    离线 jellywang
    JJ娃 尿娃 水娃


    精华贴数 1
    个人空间 10
    技术积分 5536 (295)
    社区积分 7961 (257)
    注册日期 2006-12-17
    论坛徽章:75
    现任管理团队成员授权会员2010新春纪念徽章2010年世界杯参赛球队:洪都拉斯2010新春纪念徽章祖国60周年纪念徽章
    ITPUB8周年纪念徽章ITPUB8周年纪念徽章生肖徽章2007版:羊生肖徽章2007版:蛇生肖徽章2007版:蛇生肖徽章2007版:兔

    发表于 2007-7-9 21:57 



    __________________
    钱不是问题,问题是没钱!   

    JJ之水天上来,灌到海区不复回!!

































































































































































































































































































































    空空如也!!

    只看该作者    顶部
    离线 lixuezhen
    探险者


    精华贴数 0
    个人空间 0
    技术积分 404 (5757)
    社区积分 228 (2724)
    注册日期 2006-11-10
    论坛徽章:1
    ITPUB新首页上线纪念徽章     
          

    发表于 2007-7-12 15:46 
    Re: sql实现当月日历



    QUOTE:
    最初由 wngsheng 发布

    select max(su) su,max(mo) mo,max(tu) tu,max(we) we,max(th) th,max(fr) fr,max(sa) sa from
    (select case when d=1 then dd end su,
           case when d=2 then dd end mo,
           case when d=3 then dd end tu,
           case when d=4 then dd end we,
           case when d=5 then dd end th,
           case when d=6 then dd end fr,
           case when d=7 then dd end sa,
           d,w,iw
    from(
    select dates,to_char(dates,'dd') dd,to_number(to_char(dates,'d')) d,to_char(dates,'w') w,to_char(dates+1,'iw') iw from
    (select trunc(sysdate,'month')+level-1 dates from dual
    connect by rownum<last_day(sysdate)-trunc(sysdate,'month')
    )
    )
    )
    group by iw
    order by iw;


    环境:oracle 10g


    代码格式缩进一下,看看清楚都好啊



    __________________
    继续顶红
    只看该作者    顶部
    离线 goodhawk
    因为专注,所以专业


    来自 上海
    精华贴数 1
    个人空间 0
    技术积分 2435 (797)
    社区积分 5 (19150)
    注册日期 2004-10-5
    论坛徽章:10
    授权会员2009日食纪念生肖徽章2007版:猪2009新春纪念徽章生肖徽章2007版:龙生肖徽章2007版:鸡
    ITPUB新首页上线纪念徽章     

    发表于 2007-7-12 17:27 
    非常好。以前也想写,没写出来。

    稍微纠正一下。 最后那个要 + 1
    LAST_DAY (SYSDATE)- TRUNC (SYSDATE, 'month') + 1


    __________________
    真,善,美

    *nix , Oracle,Oracle ERP (Fin),Php
    blog: http://www.xiaobaicai.com
    Tech:  http://www.appsboss.com
    只看该作者    顶部
    离线 kso
    Just do it!


    精华贴数 0
    个人空间 0
    技术积分 2965 (628)
    社区积分 136 (3648)
    注册日期 2005-5-6
    论坛徽章:83
    红孩儿IT宝贝生肖徽章2007版:牛   
          

    发表于 2007-7-12 17:33 
    9i下也适用..


    __________________
    执子之手,与子偕老。
    只看该作者    顶部
    离线 pqxpqx
    一般会员



    精华贴数 0
    个人空间 0
    技术积分 260 (8825)
    社区积分 0 (966483)
    注册日期 2006-5-22
    论坛徽章:0
          
          

    发表于 2007-7-12 17:36 
    创意不错,楼主真牛。


    只看该作者    顶部
    离线 wangfans


    精华贴数 4
    个人空间 20
    技术积分 14863 (95)
    社区积分 17157 (116)
    注册日期 2006-11-29
    论坛徽章:156
    现任管理团队成员ITPUB长老会成员金牌徽章菠菜神灯NBA季后赛大富翁季节之章:春
    蓝锆石萤石祖母绿海蓝宝石紫水晶红宝石

    发表于 2007-7-12 17:58 
    牛尹~~~~


    __________________
    ===================================
    |       |       |       |       |       |       |       |       |       |      
    ===================================
    只看该作者    顶部
    离线 sudan521
    初级会员



    精华贴数 0
    个人空间 0
    技术积分 4 (172247)
    社区积分 0 (198894)
    注册日期 2004-10-21
    论坛徽章:0
          
          

    发表于 2007-7-12 18:14 
    2007年8月 9月显示问题

    select max(su) su,max(mo) mo,max(tu) tu,max(we) we,max(th) th,max(fr) fr,max(sa) sa from
    (select case when d=1 then dd end su,
    case when d=2 then dd end mo,
    case when d=3 then dd end tu,
    case when d=4 then dd end we,
    case when d=5 then dd end th,
    case when d=6 then dd end fr,
    case when d=7 then dd end sa,
    d,w
    from(
    select dates,to_char(dates,'dd') dd,to_number(to_char(dates,'d')) d,to_char(dates,'w') w,to_char(dates+1,'iw') iw from
    (select trunc(sysdate,'month')+level-1 dates from dual
    connect by rownum<last_day(sysdate)-trunc(sysdate,'month')+1
    )
    )
    )
    group by w
    order by w;

    //8月
    SU MO TU WE TH FR SA
    -- -- -- -- -- -- --
    05 06 07 01 02 03 04
    12 13 14 08 09 10 11
    19 20 21 15 16 17 18
    26 27 28 22 23 24 25
              29 30 31

    //9月

    SU MO TU WE TH FR SA
    -- -- -- -- -- -- --
    02 03 04 05 06 07 01
    09 10 11 12 13 14 08
    16 17 18 19 20 21 15
    23 24 25 26 27 28 22
    30                          29


    只看该作者    顶部
    相关内容


    CopyRight 1999-2006 itpub.net All Right Reserved.
    北京皓辰网域网络信息技术有限公司. 版权所有
    E-mail:Webmaster@itpub.net
    网站律师 隐私政策 知识产权声明
    京ICP证:060528号 联系我们