獲得日期的年周次並且反算回日期

2021-04-28 23:27:03 字數 1585 閱讀 3094

獲得日期的周次

select to_char(to_date('2007-05-21','yyyy-mm-dd'),'yyyyww') from dual;

select to_char(to_date('2007-05-27','yyyy-mm-dd'),'yyyyww') from dual;

結果:200721

反轉計算:

select to_date(substr('200721',0,4)||'0101','yyyymmdd')+to_number(substr('200721',5,2))*7-1 as weekfirstdate from dual;

select to_date(substr('200721',0,4)||'0101','yyyymmdd')+to_number(substr('200721',5,2))*7-1 as weekfirstdate from dual;

開發中需要用到乙個查詢周的第一天日期的函式 搜尋n久很難找到解決的方法 只要自己寫乙個先用著 **如下 a_week格式為 'yyyyiw' 如 '200801'表示2023年的第一周

周使用iw方式計算 如果一年當中第52周別之後至當年的12月31日之間,還有大於或等於4天的話,則定為當年的第53周,否則剩餘這些天數被歸為下一年的第1周

create

orreplace

function  f_week_to_date(a_week varchar2)  return

char

isv_first_date   char (10);  

v_date_of_week number(1);  

begin

select  to_char(to_date(substr(a_week, 1, 4) ||  '0101' ,  'yyyymmdd' ),  'd' )  

into  v_date_of_week  

from  dual;  

v_date_of_week := v_date_of_week - 1;  

if v_date_of_week <= 4 then

select  to_char(to_date(substr(a_week, 1, 4) ||  '0101' ,  'yyyymmdd' ) +  

substr(a_week, 5, 2) * 7 - 7 - v_date_of_week + 1,  

'yyyy-mm-dd' )  

into  v_first_date  

from  dual;  

else

select  to_char(to_date(substr(a_week, 1, 4) ||  '0101' ,  'yyyymmdd' ) +  

substr(a_week, 5, 2) * 7  - v_date_of_week + 1,  

'yyyy-mm-dd' )  

into  v_first_date  

from  dual;  

end  if;  

return  v_first_date;  

end ; 

獲得日期的年周次並且反算回日期

獲得日期的周次 select to char to date 2007 05 21 yyyy mm dd yyyyww from dual select to char to date 2007 05 27 yyyy mm dd yyyyww from dual 結果 200721 反轉計算 sel...

JS計算當前日期的周次

函式 function getweek z var now date.parse z now new date now now.sethours 0 now.setminutes 0 now.setseconds 0 var nowmill now.gettime var now day now.g...

php中獲得中國式的周的日期方式

php中有的時候想獲取某周的開始和結束日期,不是很方便,於是自己收拾了一套。日期轉換成中國式的周一和週日,num 1預設返回本週周一和週日的日期 0表示上週 1表示上上週 2表示下週 3表示下下週 以此類推 public static function dealdate num 1 start nu...