您的位置:首页 > 数据库 > Oracle

oracle特殊时间查询

2011-03-25 11:30 351 查看
--the first day
select TRUNC(SYSDATE,'Q') from dual
-- 过去了多少天
select floor(sysdate- trunc(sysdate ,'Q')+1) from dual
--一个季度多少天
1. select last_day(to_date(to_char(sysdate,'yyyy-')||lpad(floor(to_number(to_char(sysdate,'mm'))/3)*3+3,2,'0')|| '-01','yyyy-mm-dd'))-
to_date(to_char(sysdate,'yyyy-')||lpad(floor(to_number(to_char(sysdate,'mm'))/3)*3+1,2,'0')||'-01','yyyy-mm-dd')+1
from dual

2.add_months(trunc(sysdate,'Q'),3)-1-to_date(to_char(TRUNC(SYSDATE,'Q'),'YYYY-MM-DD'),'yyyy-mm-dd')+1
--剩余多少天
select last_day(to_date(to_char(sysdate,'yyyy-')||lpad(floor(to_number(to_char(sysdate,'mm'))/3)*3+3,2,'0')|| '-01','yyyy-mm-dd'))-
to_date(to_char(sysdate,'yyyy-')||lpad(floor(to_number(to_char(sysdate,'mm'))/3)*3+1,2,'0')||'-01','yyyy-mm-dd')+1 -
(floor(sysdate-
trunc(sysdate ,'Q')+1))
from dual
--得到下月一日的日期

select add_months(trunc(to_date('2010-01-05','yyyy-mm-dd'), 'mm'), -1), from dual;
select to_date(to_char(add_months(trunc(sysdate, 'mm'), -1),'yyyy-mm')||'-'||to_char(sysdate,'dd'),'yyyy-mm-dd') from dual;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: