oracle判断日期是月份的第几周

image.png

SQL yzmcGxHZ8466764 发布于 2024-3-28 16:17
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
用户k6280494Lv6资深互助
发布于2024-3-28 16:18(编辑于 2024-3-28 16:19)

在Oracle中,可以使用TO_CHAR函数来判断日期是月份的第几周。具体的方法如下:

sqlSELECT TO_CHAR(SYSDATE, 'W') AS "WeekOfMonth" FROM DUAL;

上述SQL语句中,SYSDATE表示当前日期,'W'表示按照Oracle的标准周来返回周数。执行该语句后,将返回一个表示月份第几周的数字1。

另外,如果需要判断日期是今年的第几周,可以使用以下SQL语句:

sqlSELECT TO_CHAR(SYSDATE, 'WW') AS "WeekOfYear" FROM DUAL;

或者

sqlSELECT TO_CHAR(SYSDATE, 'IW') AS "WeekOfYear" FROM DUAL;

其中,'WW'和'IW'都表示按照Oracle的标准周来返回周数,但它们的计算方式略有不同。'WW'是从年的第一天开始计算,而'IW'是从周的第一天开始计算。执行上述语句后,将返回一个表示年份第几周的数字1。

https://blog.csdn.net/weixin_31244759/article/details/116525799 

  • yzmcGxHZ8466764 yzmcGxHZ8466764(提问者) 好像不行呀,sqlSELECT TO_CHAR(SYSDATE, \'W\') AS \"WeekOfMonth\" FROM DUAL 是以月初的7天为第一周的。和我图片上的规则不一致
    2024-03-28 16:41 
  • 用户k6280494 用户k6280494 回复 yzmcGxHZ8466764(提问者) https://help.fanruan.com/finereport/doc-view-2596.html 用FR公式把
    2024-03-28 16:42 
  • yzmcGxHZ8466764 yzmcGxHZ8466764(提问者) 回复 用户k6280494 这个后面还得处理数据的,fr是直接展示的,不行
    2024-03-28 16:47 
  • 用户k6280494 用户k6280494 回复 yzmcGxHZ8466764(提问者) 在表格也可以做数据处理吧
    2024-03-28 16:50 
  • 用户k6280494 用户k6280494 回复 yzmcGxHZ8466764(提问者) SELECT TO_CHAR(TRUNC(SYSDATE, \'MM\') + 6, \'IW\') - 1 AS \"WeekOfMonth\" FROM DUAL; 试一下这个SQL
    2024-03-28 16:51 
最佳回答
0
CD20160914Lv8专家互助
发布于2024-3-28 20:12

这种计算的方式,我建议你用一个日期维度表关联后去获取它的维度吧。因为日期维度表你可以自己创建所有要的维度与数据格式。这样不管领导与业务的需求变,你都能够满足日期的所有维度,查询的需求了

以下只是参考,反正你可以按你们公司的业务需求,自己再增加维度的列。这样用对应的字段关联业务数据,不管它如何变都可以出来你要的结果!!

image.png

image.png

  • 3关注人数
  • 181浏览人数
  • 最后回答于:2024-3-28 20:12
    请选择关闭问题的原因
    确定 取消
    返回顶部