怎么获取一年有多少周,以及每周的开始时间和结束时间?

3b06f6807f989046b00789d362d7b21.png

2022年的第一周包含了2021年的5天时间,如何把开始日期和结束日期设置为实际值,周数设置为显示值?

FineReport 努力学习的小白 发布于 2022-12-1 17:04 (编辑于 2022-12-1 18:56)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
1
CD20160914Lv8专家互助
发布于2022-12-1 20:46(编辑于 2022-12-1 21:00)

mysql的语句如下

/*下拉框显示与实际值*/

select 

concat('2022年第',help_topic_id,'周(',date_add(DATE_FORMAT(subdate('2022-01-01',date_format('2022-01-01','%w')-1),'%Y-%m-%d'), INTERVAL ((help_topic_id-1)*7) DAY ) 

,'至',date_add(DATE_FORMAT(subdate('2022-01-01',date_format('2022-01-01','%w')-7),'%Y-%m-%d'),INTERVAL ((help_topic_id-1)*7) DAY ),')') as 显示值,

concat(date_add(DATE_FORMAT(subdate('2022-01-01',date_format('2022-01-01','%w')-1),'%Y-%m-%d'), INTERVAL ((help_topic_id-1)*7) DAY ),'至',

date_add(DATE_FORMAT(subdate('2022-01-01',date_format('2022-01-01','%w')-7),'%Y-%m-%d'),INTERVAL ((help_topic_id-1)*7) DAY )) as 实际值

 from mysql.help_topic where help_topic_id

-----------------------显示-------------------------

image.png

你的另外数据集中获取实际值就类似这样

where 1=1

and mytime >='${left(周次,10)}'

and mytime <='${mid(周次,12,10)}'

image.png

最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-12-1 17:12(编辑于 2022-12-1 17:24)

WEEK最后一天不就获取到有几周了

image.png

---------------

第一个星期一(有了周一周末就简单了瑟)

SWITCH(WEEKDAY(DATEINYEAR(today(),1)),1,DATEINYEAR(today(),1),

2,DATEDELTA(DATEINYEAR(today(),1),-1),

3,DATEDELTA(DATEINYEAR(today(),1),-2),

4,DATEDELTA(DATEINYEAR(today(),1),-3),

5,DATEDELTA(DATEINYEAR(today(),1),-4),

6,DATEDELTA(DATEINYEAR(today(),1),-5),

0,DATEDELTA(DATEINYEAR(today(),1),-6)

)

image.png

最佳回答
0
177741977Lv6初级互助
发布于2022-12-1 17:21

oracle :

select * from (

SELECT LEVEL 周次,(TRUNC(sysdate,'YYYY')-7) + (7-TO_CHAR(TRUNC(sysdate,'YYYY'),'D')+1)+(LEVEL-1)*7-1 当周第一天,  

                  (TRUNC(sysdate,'YYYY')-7) + (7-TO_CHAR(TRUNC(sysdate,'YYYY'),'D')+1)+(LEVEL-1)*7+5 当周最后一天  

FROM DUAL CONNECT BY LEVEL<=53 )

  • 3关注人数
  • 757浏览人数
  • 最后回答于:2022-12-1 21:00
    请选择关闭问题的原因
    确定 取消
    返回顶部