求某一年的第一周的第一天的算法 求某一年的第一周的第一天的算法。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最笨的办法:制定一个已知日期,20130414,星期日,选星期日少一步计算。7-(newdate-today)/7+1newdate就是你所谓的某一年的1月1日today就是已知的日期。如果还要考虑的话就是过去的日子,加绝对值取正就可以了。 初略验证下是对的,楼主看看是以周日为第一天的select next_day ( add_months(trunc(TO_DATE('2013/3/17','yyyy/mm/dd'),'yyyy'),rownum-1),7 ) +decode ( next_day ( add_months(trunc(TO_DATE('2013/3/17','yyyy/mm/dd'),'yyyy'),rownum-1),7 ) ,add_months(trunc(TO_DATE('2013/3/17','yyyy/mm/dd'),'yyyy'),rownum-1)+7,-6,1 ) from dual ; 另還有個奇怪的問題select to_char(to_date('20110102','yyyymmdd'),'iw') from dual = 52 表示上一年的第52周select to_char(to_date('20110102','yyyymmdd'),'d') from dual = 1 表示當年的第一周的第一天BUG? select DECODE(to_char(trunc(TO_DATE('2013-01-01','YYYY-MM-DD'),'yyyy'),'D'),'1', trunc(TO_DATE('2013-01-01','YYYY-MM-DD'),'yyyy'), next_day(trunc(TO_DATE('2013-01-01','YYYY-MM-DD'),'yyyy'),1)-7) from dual 這個也應該是錯的,iw 一周是從周一到周日,而 turnc(sysdate, 'D')算出來的第一天是周日,且一年的第一周的第一天有可能是去年的最後幾天 简单的oracle遍历为什么执行错误 110个oracle常用函数总结 distinct的问题 求insert语句 请问:oracle8174能否直接启用oracle816的数据库,而不用导出导入? 在linux(或者Unix下)如何用c语言操作数据库 一个简单的问题 Oracle存储过程中 Ref cursor 问题 我是应该先查再删,还是直接删呢? 如何让存储过程返回一个结果集? 如何取前面一段的连续数据,谢谢了(急)! 自定义查询相关数据结构
制定一个已知日期,20130414,星期日,选星期日少一步计算。
7-(newdate-today)/7+1
newdate就是你所谓的某一年的1月1日
today就是已知的日期。如果还要考虑的话就是过去的日子,加绝对值取正就可以了。
是以周日为第一天的
select next_day
(
add_months(trunc(TO_DATE('2013/3/17','yyyy/mm/dd'),'yyyy'),rownum-1),7
)
+decode
(
next_day
(
add_months(trunc(TO_DATE('2013/3/17','yyyy/mm/dd'),'yyyy'),rownum-1),7
)
,add_months(trunc(TO_DATE('2013/3/17','yyyy/mm/dd'),'yyyy'),rownum-1)+7,-6,1
)
from dual ;
select to_char(to_date('20110102','yyyymmdd'),'iw') from dual
= 52 表示上一年的第52周
select to_char(to_date('20110102','yyyymmdd'),'d') from dual
= 1 表示當年的第一周的第一天
BUG?
trunc(TO_DATE('2013-01-01','YYYY-MM-DD'),'yyyy'),
next_day(trunc(TO_DATE('2013-01-01','YYYY-MM-DD'),'yyyy'),1)-7)
from dual