一年中第几周函数问题

week( )函数是返回本周在一年中第多少周,week( ) 函数是按照周一到周日算为一周,有没有其他的函数,可以自定义周几到周几为一周,例如:自定义本周四到下周四为一周

FineReport 十三SSan 发布于 2023-12-14 10:01
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-12-14 11:18

IF($RQ_<DATEDELTA(DATEINYEAR(today(),1),switch(WEEKDAY(DATEINYEAR(today(),1)), 0,4, 1,3, 2,2, 3,1, 4,0, 5,6, 6,5)),"上年52周",CONCATENATE("本年",

ROUNDUP((DATEDIF(DATEDELTA(DATEINYEAR(today(),1),switch(WEEKDAY(DATEINYEAR(today(),1)), 0,4, 1,3, 2,2, 3,1, 4,0, 5,6, 6,5)),$RQ_,"D")/7)),"周"))

测2023-12-14为49周image.png

  • 十三SSan 十三SSan(提问者) 这个逻辑是什么?没太看懂,大佬可以讲解一下么?
    2023-12-15 15:39 
  • 十三SSan 十三SSan(提问者) 2023-12-14应该为本年的第51周吧?
    2023-12-15 15:41 
  • Z4u3z1 Z4u3z1 回复 十三SSan(提问者) 你那是加1周啊,看你们需求吧
    2023-12-15 15:44 
最佳回答
0
luojian0323Lv7资深互助
发布于2023-12-14 10:02

当然有,把日期向后减几天或加几天再计算周数不就好了。

最佳回答
0
梦已元Lv4中级互助
发布于2023-12-14 10:24(编辑于 2023-12-14 10:37)

这个要定义你的,开始日期+6天 结束 为一周了哦

image.png

你应该用这个函数weeknum,计算你的周次 num 1,2,11,12,13,14,15,16,17,21 如果周四就是14开始

image.png

  • 十三SSan 十三SSan(提问者) weeknum()没有这个函数吧?
    2023-12-14 10:49 
  • 梦已元 梦已元 回复 十三SSan(提问者) o,BI 支持这个函数,搞错了估计
    2023-12-14 13:19 
最佳回答
0
快乐星光Lv5中级互助
发布于2023-12-14 11:22

如果可以在ds的sql里面设置,会简单一些:

-- sqlserver

set datefirst 1 ;-- 设置周五为第一天

-- 把'2023-09-03'换成日期字段

select cast(datepart(mm,'2023-09-03') as varchar(2)) + '月第'

+cast((datepart(wk,'2023-09-03') - datepart(wk,convert(varchar(7),'2023-09-03',120) + '-01') + 1) as varchar(2)) + '周'

  • 4关注人数
  • 312浏览人数
  • 最后回答于:2023-12-14 11:22
    请选择关闭问题的原因
    确定 取消
    返回顶部