如何自定义计算周(按月)oracle数据库

各位大佬,我想实现的是每个月1号为week1 ,周日~周六为一周来计算,这个如何实现

企业微信截图_16388485438508.png

胡歌 发布于 2021-12-7 13:28 (编辑于 2021-12-7 14:02)
1min目标场景问卷 立即参与
回答问题
悬赏:23 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
梦似幻亦真Lv3见习互助
发布于2021-12-7 13:55

那要看是什么数据库了,Oracle的select to_char(sysdate,'w') from dual,这是从当月1号开始算周

  • 胡歌 胡歌(提问者) 你这个周是7天一个区间,和我的需求不符合
    2021-12-07 14:04 
  • 梦似幻亦真 梦似幻亦真 回复 胡歌(提问者) 获取时间是当月第几周 SELECT to_char(SYSDATE, \'iw\') - to_char(last_day(add_months(SYSDATE, -1)) + 1, \'iw\') + 1 week FROM dual; 原理:当前时间的周数-上月最后一天的周数+1,即为当前日期所在月的周数
    2021-12-07 16:23 
最佳回答
0
梦想的初衷Lv7初级互助
发布于2021-12-7 14:23(编辑于 2021-12-7 14:54)

直接用kettle或Python工具将字段处理成你想要的格式

最佳回答
0
CD20160914Lv8专家互助
发布于2021-12-7 14:32

给你一个建议,在数据库里面创建一张日期维度表,这个日期你就弄成2000年开始到2099年这100年时间,把它们的类型全放进去,比如上周五到本周四,上周天到本周六,季度,月度,自然周。上月26到本月25的类型都加进去,后面用日期匹配的时候,想用什么类型都方便。这样做是真的方便。参数还可以任意选择

最佳回答
0
木木ynLv5见习互助
发布于2021-12-7 14:59

这个是我在使用的一个周数(oracle)

SELECT A.* FROM (

    SELECT  to_char(dateTime , 'yyyy-mm-dd')  KSRQ 

    , to_char(dateTime+6, 'yyyy-mm-dd')  JSRQ 

    , TO_CHAR(dateTime,'WW')  ZS 

FROM  

(  select dateTime,Rownum rn 

   from   

     (with t as

        (select rownum-1 rn from dual connect by rownum<=10000)

      select to_date('${KSNF}-01-01','yyyy-mm-dd')+ rn as dateTime 

      from t 

      where to_date('${KSNF}-01-01','yyyy-mm-dd') + rn < to_date('${KSNF}-12-31','yyyy-mm-dd') --查下年份

     ) b 

   where to_char(b.dateTime, 'day') = '星期六'  

)

) A

where 1=1 

${IF(LEN(ZS)==0,"","AND ZS <='"+ZS+"'")} --查询第几周

  • 5关注人数
  • 687浏览人数
  • 最后回答于:2021-12-7 14:59
    请选择关闭问题的原因
    确定 取消
    返回顶部