add_daysoracle_Oracle⽇期函数简介
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中trunc函数用法
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;SESSIONTIMEZONECU ------------------------+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_ --------------------------------------------------+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;ThisMo ---------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⽇期函数简介所遇到的程序开发问题。
如果觉得编程之家⽹站内容还不错,欢迎将编程之家⽹站推荐给程序员好友。
本图⽂内容来源于⽹友⽹络收集整理提供,作为学习参考使⽤,版权属于原作者。
如您喜欢交流学习经验,点击链接加⼊交流1:1065694478(已满)交流2:163560250
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论