Oracle 日期操作

1)  步长为小时,直接转换时间为小时:select trunc(sysdate,’hh24’) from dual 返回当前时间整点

2)  步长为半小时,转换为0分和30分两段:selectcasewhen (sysdate-trunc(sysdate,'hh24'))>1/48then trunc(sysdate,'hh24')+1/48else trunc(sysdate,'hh24') endcasefrom dual

3)  步长为天:select trunc(sysdate) from dual;

4)  步长为周:

-一周的第一天 

select to_char(sysdate,'d') from dual; 

--得到星期几 

select initcap(to_char(sysdate,'day')) from dual; 

--取当前时间是一年中的第几周(按实际日历的) 

select to_char(sysdate,'iw') from dual; 

---取当前时间是一年中的第几周(从1.1开始算) 

select to_char(sysdate,'ww') from dual; 

--取当前时间是一个月中的第几周(1日开始算

select to_char(sysdate,'w') from dual; 

--本周第一天(星期天算起) 

selecttrunc(sysdate,'d') from dual; 

5)  步长为月:select trunc(sysdate,'mm') from dual

6)  步长为季:select trunc(sysdate,'q') from dual;返回本季的第一天

7)  步长半年selectcasewhensysdate > add_months(trunc(sysdate,'yyyy'),6) then add_months(trunc(sysdate,'yyyy'),6) else trunc(sysdate,'yyyy') endcase   from dual

8)  步长为年:select trunc(sysdate,'yyyy') from dual

9)  步长为旬selectcasewhensysdate <trunc(sysdate,'mm')+9  then trunc(sysdate,'mm'whensysdate >=trunc(sysdate,'mm')+19then trunc(sysdate,'mm')+19else trunc(sysdate,'mm')+9endcasefrom dual返回所在旬首日

你可能感兴趣的:(oracle)