Oracle 10g数据库管理、应用与开发(五)

3、日期时间函数,Oracle 中的日期型数据实际含有两个值: 日期和时间。默认的日期格式是 DD-MON-RR.日期时间函数用来返回当前系统的日期和时间、以及对日期和时间类型的数据进行处理运算。

add_months(date,count):在指定的日期上增加count个月

last_day(date):返回日期date所在月的最后一天

months_between(date1,dates):返回date1date2之间间隔多少个月

new_time(date,this,other):将时间datethis时区转换成other时区

next_day(day,day):返回指定日期或最后一的第一个星期几的日期,这里day为星期几

sysdate():获取系统的当前日期

current_timestamp():获取当前的时间和日期值

round:日期的四舍五入

trunc:日期的截取

日期的数学运算:

  在日期上加上或减去一个数字结果仍为日期。

  两个日期相减返回日期之间相差的天数。

  可以用数字除24来向日期中加上或减去小时。

//获取系统的当前时间 显示的格式采用默认格式 显示结果:07-4月 -11 11.15.38.390000 上午 +08:00
SQL> select current_timestamp from dual;
//获取系统的当前日期值  显示结果:2011-4-7 11
SQL> select sysdate from dual;
//为当前日期加上3个月 显示的结果:2011-7-7 11:18:36
select add_months(sysdate,3) from dual;
//返回当前月的最后一天 显示的结果:2011-4-30 11:19:4
select last_day(sysdate) from dual;
//返回两个日期之间的间隔月是几: 结果为:4
SQL> select months_between(add_months(sysdate,4),sysdate) from dual;
//从GMT时区转换成AST时区的日期结果
 SQL> select new_time(sysdate,'GMT','AST') from dual;
//返回下一个星期一的日期值   必须写成星期’几’
 SQL> select next_day(sysdate,'星期一') from dual;

4、转换函数

    隐式转换:在运算过程中由系统自动完成的

    显式转换:在运算过程中需要调

 

隐式转换

 

显式转换

    TO_CHAR(date,format):按照指定的格式format把数字或日期类型的数据转换成字符串

格式:

       必须包含在单引号中而且大小写敏感。

       可以包含任意的有效的日期格式。

       日期之间用逗号隔开。

   日期格式如下:


 

//把当前日期转换成YYYY/MM/DD的格式
SQL> select to_char(current_timestamp,'YYYY/MM/DD') from dual;
//把当前日期转换成YYYY/MM/DD HH24/MI/SS AM的格式
SQL> select to_char(current_timestamp,'YYYY/MM/DD HH24/MI/SS AM') from dual;
//DD “of” MONTH
SQL> select to_char(current_timestamp,'YYYY DD "of" MONTH  HH/MI/SS AM') from dual;
//把当数字按照$99,999这种方式返回字符串  并且操作数的位数不能够大于5(即$后边的位数)位,否则话结果会是########
SQL> select to_char(11111,'$99,999') from dual;
to_number(char);把包含了数字格式的字符串转换成数字数据
to_date(string,’format’);按照指定格式的format把字符串转换成日期数据,如果省略了foramt格式,那么就采用默认的日期格式(DD-MON-YY);
//把当前字符串转换成日期
SQL> select to_date('2011-02-08','YYYY-MM-DD') from dual;
//求出两个日期之间相差的天数
SQL> select to_date('2011-07-15','YYYY-MM-DD')-to_date('2011-02-08','YYYY-MM-DD') from dual;
//求出两个日期之间相差的周次 
SQL> select (to_date('2011-07-15','YYYY-MM-DD')-to_date('2011-02-08','YYYY-MM-DD'))/7 from dual;
//对周次进行向上取整
SQL> select ceil((to_date('2011-07-15','YYYY-MM-DD')-to_date('2011-02-08','YYYY-MM-DD'))/7) from dual;
chartorowid(char);把字符串转换成rowid类型
rowidtochar(x);把rowid类型转换成字符类型数据

  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值