码迷,mamicode.com
首页 > 数据库 > 详细

Oracle中日期常用操作及函数

时间:2015-05-09 06:29:35      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:

--(以系统时间为例,实际情况更换即可)

1 读取系统时间 – sysdate

Select sysdate from dual;

2 读取时间信息(年、月、日、时、分、秒)

select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss‘) as nowTime from dual; //日期转化为字符串
select to_char(sysdate,‘yyyy‘) as nowYear from dual; //获取时间的年
select to_char(sysdate,‘mm‘) as nowMonth from dual; //获取时间的月
select to_char(sysdate,‘dd‘) as nowDay from dual; //获取时间的日
select to_char(sysdate,‘hh24‘) as nowHour from dual; //获取时间的时
select to_char(sysdate,‘mi‘) as nowMinute from dual; //获取时间的分
select to_char(sysdate,‘ss‘) as nowSecond from dual; //获取时间的秒

3 改变时间信息(年、月、日、时、分、秒)

select sysdate,sysdate+numtoyminterval(3,‘year‘) as res from dual;

select sysdate,sysdate+numtoyminterval(3,‘month‘) as res from dual;

select sysdate,sysdate+numtodsinterval(3,‘day‘) as res from dual;

select sysdate,sysdate+numtodsinterval(3,‘hour‘) as res from dual;

select sysdate,sysdate+numtodsinterval(3,‘minute‘) as res from dual;

select sysdate,sysdate+numtodsinterval(3,‘second‘) as res from dual;

或者

Select to_char(sysdate,‘yyyy-mm-ddhh24:mi:ss‘),to_char(sysdate+

n*365,‘yyyy-mm-dd hh24:mi:ss‘) as newTime from dual

//改变时间-年
select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss‘),add_months(sysdate,n) as newTime from dual

//改变时间-月
select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss‘),to_char(sysdate+n,

‘yyyy-mm-dd hh24:mi:ss‘) as newTime from dual

//改变时间-日
select to_char(sysdate,‘yyyy-mm-ddhh24:mi:ss‘),to_char(sysdate+n/24,

‘yyyy-mm-dd hh24:mi:ss‘) as newTime from dual

//改变时间-时
select to_char(sysdate,‘yyyy-mm-ddhh24:mi:ss‘),to_char(sysdate+n/24/60, ‘yyyy-mm-dd hh24:mi:ss‘) as newTime from dual

//改变时间-分
select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss‘),to_char(sysdate+

n/24/60/60,‘yyyy-mm-dd hh24:mi:ss‘) as newTime from dual

//改变时间-秒

4 求日期和时间差

Select floor(to_number(sysdate-to_date(‘2007-11-0215:55:03‘,

‘yyyy-mm-dd hh24:mi:ss‘))/365) as spanYears from dual   

//时间差-年

SELECT MONTHS_BETWEEN(TO_DATE(‘2011-05-03‘,

‘YYYY-MM-DD‘), TO_DATE(‘2011-01-23‘, ‘YYYY-MM-DD‘)) as spanMonths FROM DUAL;//时间差-月

Select floor(to_number(sysdate-to_date(‘2007-11-02 15:55:03‘,

‘yyyy-mm-dd hh24:mi:ss‘))) as spanDays from dual 

//时间差-天

 Select floor(to_number(sysdate-to_date(‘2007-11-02 15:55:03‘,

‘yyyy-mm-dd hh24:mi:ss‘))*24) as spanHours from dual  

//时间差-时

Select floor(to_number(sysdate-to_date(‘2007-11-02 15:55:03‘,

‘yyyy-mm-dd hh24:mi:ss‘))*24*60) as spanMinutes from dual

//时间差-分

Select floor(to_number(sysdate-to_date(‘2007-11-02 15:55:03‘,

‘yyyy-mm-dd hh24:mi:ss‘))*24*60*60) as spanSeconds from dual

//时间差-秒

5trunc(d1[,c1]) 函数

返回日期d1所在期间(参数c1)的第一天日期

d1日期型,c1为字符型(参数),c1默认为j(即当前日期)

c1对应的参数表:

本周星期日:day或dy或d (每周顺序:日,一,二,三,四,五,六)

本月初日期:month或mon或mm或rm

本季日期:q

本年初日期:syear或year或yyyy或yyy或yy或y(多个y表示精度)

本世纪初日期:cc或scc
select sysdate from dual --当时日期

select trunc(sysdate) from dual

select trunc(sysdate ,‘DD‘) from dual --今天日期

select trunc(sysdate,‘d‘)+7 from dual --本周星期日

select trunc(sysdate,‘dy‘)+7 from dual --本周星期日

select trunc(sysdate,‘day‘)+7 from dual --本周星期日

select trunc(sysdate,‘q‘) from dual--本季开始日期

select trunc(sysdate,‘month‘) from dual --本月开始日期

select trunc(sysdate ,‘mm‘) from dual --本月开始日期

select trunc(sysdate,‘year‘) from dual --本年开始日期

select trunc(sysdate ,‘yyyy‘) from dual --本年开始日期

select trunc(sysdate ,‘HH24‘) from dual --本小时开始时间

select trunc(sysdate ,‘MI‘) from dual --本分钟开始时间

select trunc(sysdate ,‘CC‘) from dual --本世纪开始时间

select trunc(LAST_DAY(sysdate),‘dd‘) from dual --本月最后一天

6  ROUND函数

函数将输入日期四舍五入到第二个参数指定的形式。

round(to_date(‘1999.11.24 08:37 am ‘,‘yyyy.mm.dd hh:mi am‘),‘hh‘)

返回 1999.11.24 09:00:00 am

格式   结果

SS   1999.11.24 10:31:11

MI   1999.11.24 10:31:00

HH   1999.11.24 11:00:00

DD   1999.11.24 00:00:00

MM  1999.12.01 00:00:00

YY    2000.01.01 00:00:00

7  LAST_DAY

返回包含给定日期的那个月的最后一天。语法为:

LAST_DAY(日期)

select last_day(‘21-2月-80‘) from dual;

8 这位高手总结得很好:

http://www.blogjava.net/pengpenglin/archive/2008/06/30/211589.html#part7

Oracle中日期常用操作及函数

标签:

原文地址:http://www.cnblogs.com/liyong-hit/p/4489205.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!