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

Oracle 各种时间获取方法

2014-07-31 10:55 204 查看
1、获取系统日期: SYSDATE()

2、 格式化日期: TO_CHAR(SYSDATE(),'YY/MM/DD HH24:MI:SS)

或 TO_DATE(SYSDATE(),'YY/MM/DD HH24:MI:SS)

3、 格式化数字: TO_NUMBER

①、当前时间减去7分钟的时间

select sysdate,sysdate - interval '7' MINUTE from dual;

②、当前时间减去7小时的时间

select sysdate - interval '7' hour from dual;

③、当前时间减去7天的时间

select sysdate - interval '7' day from dual;

④、时间间隔乘以一个数字

select sysdate,sysdate - 8*interval '7' hour from dual;

⑤、取两个时间之间的时间差:

select sysdate-1 from dual

select sysdate+/-n from dual (n代表你想差的天数)

4、格式化时间格式

①、TO_CHAR(Sysdate, 'YYYY-MM-DD HH24:MI')中的'YYYY-MM-DD HH24:MI'格式分为两部分,'YYYY-MM-DD'为日期部分,'HH24:MI'为时间部分。

Select TO_CHAR(Sysdate, 'YYYY-MM-DD HH24:MI') From Dual; 显示的是日期和时间;

Select TO_CHAR(Sysdate, 'YYYY-MM-DD') From Dual; 则仅显示日期;

Select TO_CHAR(Sysdate, 'YYYY') From Dual; 则仅显示年份,依此类推

②、trunc()函数

oracle trunc(sysdate,'dd') 日期

select trunc(sysdate ,'dd') from dual ; -- 2007-9-19

select trunc(sysdate ,'yyyy') from dual ; --2007-1-1

select trunc(sysdate ,'mm') from dual ; --2007-9-1

5、求出本星期的第一天日期(以星期一为第一天)

  select trunc(sysdate,'DD')-to_char(sysdate,'D')+2 from dual;

6、求出本星期的第七天日期(以星期日为第七天)

select trunc(sysdate,'DD')-to_char(sysdate,'D')+8 from dual;

7、根据日期格试,取到值到星期几

  select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual;

oracle 取某月的第一天,最后一天,前一个月的第一天,最后一天,类似方法

8、在Oracle 数据库中取某个月份的第一天和最后一天的方法:

①、Last_day 本月最后一天

select last_day(sysdate) from dual;

②、取当前日期前一个月的第一天的日期

select last_day(add_months(SYSDATE, -2)) + 1 FROM dual;

③、取当前日期前一个月的最后一天的日期

select last_day(add_months(SYSDATE, -1)) FROM dual;
④、本月的第一天和最后一天

select to_char(trunc(sysdate,'MONTH'),'yyyy-mm-dd') First_DayOfMonth ,to_char(last_day(trunc(sysdate,'MONTH')),'yyyy-mm-dd') Last_DayOfMonth from dual;
⑤、Months_between(f,s) 日期f和s间相差月数

select months_between(sysdate,to_date('2005-11-12','yyyy- mm-dd'))from dual;
⑥上月末天:
select to_char(add_months(last_day(sysdate),-1),'yyyy-MM- dd') LastDay from dual;
⑦、上月今天
select to_char(add_months(sysdate,-1),'yyyy-MM-dd') PreToday from dual;
⑧、上月首天
select to_char(add_months(last_day(sysdate)+1,-2),'yyyy-M M-dd') firstDay from dual;

⑨、按照每周进行统计
select to_char(sysdate,'ww') from dual group by to_char(sysdate,'ww');
⑩、按照每月进行统计
select to_char(sysdate,'mm') from dual group by to_char(sysdate,'mm');

⑪、按照每季度进行统计
select to_char(sysdate,'q') from dual group by to_char(sysdate,'q');

⑫、按照每年进行统计
select to_char(sysdate,'yyyy') from dual group by to_char(sysdate,'yyyy');

9、要找到某月中所有周五的具体日期
select to_char(t.d,'YY-MM-DD') from ( select trunc(sysdate, 'MM')+rownum-1 as d from dba_objects where rownum < 32) t where to_char(t.d, 'MM') = to_char(sysdate, 'MM') (--找出当前月份的周五的日期 )and trim(to_char(t.d, 'Day')) = '星期五'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: