Oracle学习笔记:日期型处理(Date)。

Oracle中最常用的日期类型为Date和timestamp;

Date:

Date类型包含了以下信息:

Century:世纪

Year:年份

month:月份

Day:天数

Hour:小时

Minute:分钟

Second:秒

oracle日期的格式为:yyyy-MM-dd hh24:mi:ss.

select sysdate from dual;//返回当前系统时间

为日期加上特定月份add_months(日期,值)函数:

select add_months(sysdate,1) from dual;//在当前系统时间加一个月,当值为负的时候就是减一个月。此处返回2013-11-23 00:00:00;
select add_months(to_date('2013-10-20','yyyy-MM-dd'),-1) from dual;//返回的就是2013-09-20 00:00:00

返回特定日期所在月的最后一天last_day(日期)函数:

select last_day(to_date('2010-02-28','yyyy-MM-dd')) from dual;//此处返回2010-02-28
select last_day(to_date('2000-02-28','yyyy-MM-dd')) from dual;//此处返回2010-02-29
//oracle会自动判别年份是否为闰年。并返回这个月的最后一天。

返回两个日期所差的月数months_between(日期,日期):

select months_between(to_date('2010-02-28','yyyy-MM-dd'),to_date('2013-10-23','yyyy-MM-dd')) from dual;//此处返回-43.838..可以看出是用前面的日期减去后面的日期。

返回特定日期之后一周内的日期next_day(日期,数值):

//此处数值1为星期天,2为星期一,以此类推。
select next_day(to_date('2013-10-23','yyyy-MM-dd'),2) from dual;//此处返回2013-10-28,因为今天是星期三,那么下个星期一就是28号。

截取日期函数trunc(日期,截取格式):

//trunc同样可以截取数字,不进行四舍五入。在number类型处理中有。
select trunc(sysdate,'DD') from dual;//此处返回的是2013-10-23,可见,截取格式是指定要截取到哪个位置。
select trunc(sysdate,'MM') from dual;//此处返回的是2013-10-01,返回的是要截取月的第一天,同理,如果截取到年,会显示本年的第一月的第一天。若截取到分或以后,其余归零。

返回日期某个域extract(域 from 日期):

select extract(month from sysdate ) from dual;//此处返回的是10。

将日期转化为字符串to_char(日期,格式):

select to_char(sysdate,'yyyy-MM-dd') from dual;//此处返回2013-10-23
select to_char(sysdate,'yy-Mon-dd DAY') from dual;//此处返回13-10月-23 星期三

具体格式如下表:

猜你喜欢

转载自javawebxy.iteye.com/blog/2002954