Oracle日期函数简介
Oracle日期函数简介
发布时间:2016-12-28 来源:查字典编辑
摘要:Oracle日期函数用于对Oracle数据库中的日期及时间进行处理,下面就为您详细介绍Oracle日期函数的用法,希望对您能有所启迪。(1)...

Oracle日期函数用于对Oracle数据库中的日期及时间进行处理,下面就为您详细介绍Oracle日期函数的用法,希望对您能有所启迪。

(1)SYSDATE和TRUNC

两个Oracle日期函数取Oracle服务器系统的日期和截掉小数部分的功能。观察以下操作:

create table test_date (name varchar2(20), p_date date);

insert into test_date values(‘name1',sysdate);

select * from test_date;

select * from test_date where p_date='25-10月-05‘;

select * from test_date where trunc(p_date)= '25-10月-05‘;

Oracle系统中用SYSDATE取得的不仅包含日期而且还包含的有时间信息,时间信息实际上就是表示儒略日数据中的小数部分。

(2)ADD_MONTHS

Oracle日期函数返回一个具有与所提供日期相差月份的日期,函数中给出了未来或以前的月份数。语法如下:

ADD_MONTHS(起始日期,增减月数)

select add_months('26-10月-05‘,2) from dual;

select add_months('26-10月-05‘,-2) from dual;

(3)LAST_DAY

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

LAST_DAY(日期)

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

(4)MONTHS_BETWEEN

返回两个日期间的月份。语法为:

MONTHS_BETWEEN(较晚日期,较早日期)

select months_between('12-10月-05‘,'12-9月-03‘) from dual;

以下是一些补充资料,虽然有点仄,但参考下吧

在oracle中有很多关于日期的函数,

如:

1、add_months()用于从一个日期值增加或减少一些月份date_value:=add_months(date_value,number_of_months)例:SQL>selectadd_months(sysdate,12)NextYearfromdual;NextYear----------13-11月-04SQL>selectadd_months(sysdate,112)LastYearfromdual;LastYear----------13-3月-13SQL>

2、current_date()返回当前会放时区中的当前日期date_value:=current_dateSQL>columnsessiontimezonefora15SQL>selectsessiontimezone,current_datefromdual;SESSIONTIMEZONECURRENT_DA-------------------------+08:0013-11月-03SQL>altersessionsettime_zone=-11:002/会话已更改。SQL>selectsessiontimezone,current_timestampfromdual;SESSIONTIMEZONECURRENT_TIMESTAMP----------------------------------------------------11:0012-11月-0304.59.13.668000下午-11:00SQL>

3、current_timestamp()以timestampwithtimezone数据类型返回当前会放时区中的当前日期timestamp_with_time_zone_value:=current_timestamp([timestamp_precision])SQL>columnsessiontimezonefora15SQL>columncurrent_timestampformata36SQL>selectsessiontimezone,current_timestampfromdual;SESSIONTIMEZONECURRENT_TIMESTAMP---------------------------------------------------+08:0013-11月-0311.56.28.160000上午+08:00SQL>altersessionsettime_zone=-11:002/会话已更改。SQL>selectsessiontimezone,current_timestampfromdual;SESSIONTIMEZONECURRENT_TIMESTAMP----------------------------------------------------11:0012-11月-0304.58.00.243000下午-11:00SQL>

4、dbtimezone()返回时区varchar_value:=dbtimezoneSQL>selectdbtimezonefromdual;DBTIME-------07:00SQL>

5、extract()找出日期或间隔值的字段值date_value:=extract(date_fieldfrom[datetime_value|interval_value])SQL>selectextract(monthfromsysdate)ThisMonthfromdual;ThisMonth----------11SQL>selectextract(yearfromadd_months(sysdate,36))3YearsOutfromdual;3YearsOut-----------2006

6、last_day()返回包含了日期参数的月份的最后一天的日期date_value:=last_day(date_value)SQL>selectlast_day(date2000-02-01)LeapYr?fromdual;LeapYr?----------29-2月-00SQL>selectlast_day(sysdate)Lastdayofthismonthfromdual;Lastdayo----------30-11月-03SQL>

7、localtimestamp()返回会话中的日期和时间timestamp_value:=localtimestampSQL>columnlocaltimestampformata28SQL>selectlocaltimestampfromdual;LOCALTIMESTAMP----------------------------13-11月-0312.09.15.433000下午SQL>selectlocaltimestamp,current_timestampfromdual;LOCALTIMESTAMPCURRENT_TIMESTAMP----------------------------------------------------------------13-11月-0312.09.31.00600013-11月-0312.09.31.006000下午+08:下午00SQL>altersessionsettime_zone=-11:00;会话已更改。SQL>selectlocaltimestamp,to_char(sysdate,DD-MM-YYYYHH:MI:SSAM)SYSDATEfromdual;LOCALTIMESTAMPSYSDATE----------------------------------------------------12-11月-0305.11.31.25900013-11-200312:11:31下午下午SQL>

8、months_between()判断两个日期之间的月份数量number_value:=months_between(date_value,date_value)SQL>selectmonths_between(sysdate,date1971-05-18)fromdual;MONTHS_BETWEEN(SYSDATE,DATE1971-05-18)----------------------------------------389.855143SQL>selectmonths_between(sysdate,date2001-01-01)fromdual;MONTHS_BETWEEN(SYSDATE,DATE2001-01-01)----------------------------------------34.4035409SQL>

9、next_day()给定一个日期值,返回由第二个参数指出的日子第一次出现在的日期值(应返回相应日子的名称字符串)本文参考oracle中国联盟

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Oracle教程学习
热门Oracle教程学习
编程开发子分类