`
pitt_wang
  • 浏览: 11824 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

第四章日期和时间的存储和处理 摘录

 
阅读更多
第四章日期和时间的存储和处理
select to_char(12345.67,'$99,999.999') from dual;
$12,345.670

select translate('wang','w','z') from dual;
zang

select replace('appleorange','app','wang') from dual;
wangleorange

SELECT TO_NUMBER('-$12,345.67','$99,999.99')  from dual;
-12345.67

create table wang(
times date);
select * from wang;
还可以使用DATE关键字向数据库提供一个日期文本字符串,此时日期必须使用ANSI标准格式YYYY-MM-DD.
insert into wang values(date'1988-12-10');

insert into wang values('05-Feb-2008');
insert into wang values('04/June/2008');
insert into wang values(sysdate);

select to_char(times,'mm-rr-yyyy') from wang;
select to_char(times,'MONTH DD,YYYY') from wang;
数据库参数NLS_DATE_FORMAT指定了默认的日期格式。
select to_date('July 4,2003','MONTH DD,YYYY') FROM dual;
select to_date('7.4.06','MM.DD.YY') FROM dual;
TO_CHAR()和TO_DATE函数可以组合使用。


4.5使用时间值函数
add_months(x,y)函数计算x加上y个月的结果:
select add_months('01-JAN-2005',1) from dual;
2/1/2005

select add_months('01-JAN-2005',-1) from dual;
12/1/2004
add_months()函数可以用于时间和日期。
4.5.2 LAST_DAY()函数
LAST_DAY()函数用于计算包含x的月的最后一天。
select last_day('01-JAN-2005') from dual;
1/31/2005
4.5.3 MONTHS_BETWEEN(x,y)
MONTHS_BETWEEN(x,y)函数用于计算x和y之间有几个月。如果x在日历中比y早,那么MONTHS_BETWEEN()函数就返回一个负数。

4.5.4 next_day(x,day)函数
next_day(x,day)函数用于计算从x开始,下一个day的日期;参数day是一个文本字符串,例如Saturday.
select next_day('25-may-2010','saturday') from dual;
5/29/2010
4.5.5 ROUND()函数
ROUND(x[,unit])函数用于对x进行取整。默认情况下,x取整为最近的一天。Unit是一个可选字符串参数,它指明要取整的单元。例如,YYYY表示将x取整为最近一年的第一天。
select round(to_date('25-OCT-2005'),'yyyy')from dual;
1/1/2006


select round(to_date('25-OCT-2005'),'mm')from dual;
11/1/2005
select round(to_date('25-OCT-2005 19:45:06','dd--mon-yyyy hh24:mi:ss'),'HH24')from dual;
10/25/2005 8:00:00 PM
4.5.7 TRUNC()函数
 TRUNC(x,unit)函数用于对x进行截断。默认情况下,截断为当天的开始时间。
select trunc(to_date('25-may-2010'),'yyyy')from dual;
1/1/2010
select trunc(to_date('25-may-2010'),'mm')from dual;
5/1/2010
select to_char(trunc(to_date('25-OCT-2005 19:45:06','dd--mon-yyyy hh24:mi:ss'),'HH24'),'dd--mon-yyyy hh24:mi:ss') from dual;
25--oct-2005 19:00:00
4.6理解时区
UTC坐标通用时间
时区可以使用与UTC(Coordinated Universal Time)的时差来表示,也可以使用时区名来表示。在指定时差时,可以使用HH:MI格式,前面有一个加号或减号前缀:
+|-HH:MI
其中
+或-符号符号表示从UTC增加或减少几个时差
HH:MI表示该时区的小时和分钟
时区也可以使用时区名指定。例如,PST表示太平洋标准时间(Pacific Standard Time)
EST(Eastern Standard Time)表示东部标准时间
数据库的时区称为数据库时区(database time zone),数据库会话的时区设置称为会话时区(session time zone)
数据库时区是由数据库参数TIME_ZONE控制的;DBA可以在数据库的init.ora或spfile.ora文件中修改TIME_ZONE参数的设置。
Sysdate()函数来查看数据库所在的操作系统的日期设置,这个函数可以得到数据库时区中的日期。
CURRENT_DATE()函数可以用于查看会话时区中的日期。
4.6.3获取时区的时差
Select TZ_OFFSET(‘PST’) FROM DUAL;
4.6.4获取时区名
SELECT * FROM V$TIMEZONE_NAMES ;
4.6.5将时间值从一个时区转换为另一个时区
NEW_TIME()
4.7使用时间戳
4.7.1使用TIMESTAMP类型
使用TIMESTAMP类型
create table pp(pid timestamp(4));
insert into pp values(timestamp '2005-05-13 07:15:31.12345');
使用TIMESTAMP WITH ZONE类型
create table pp(pid timestamp(4)with time zone);
insert into pp values(timestamp '2005-05-13 07:15:31.12345 -07:00');
4.8使用时间间隔
4.8.1使用INTERVAL YEAR TO MONTH类型
create table pp(dur interval year(3) to month);
insert into pp values(interval '1' year);
insert into pp values(interval '11' month);
insert into pp values(interval '14' month);
insert into pp values(interval '1-3' year to month);
insert into pp values(interval '0-5' year to month);
insert into pp values(interval '123' year(3));
select * from pp;
+01-00
+00-11 
+00-11
+01-03
+00-05
+123-00

4.82.使用interval da to secondy类型
create table pp(dur interval day(3) to second (4));
insert into pp values(interval '3' day);
insert into pp values(interval '2' hour);
insert into pp values(interval '25' minute);
insert into pp values(interval '45' second);
insert into pp values(interval '3 2:25' day to minute);
insert into pp values(interval '3 2:25:33' day to second);
insert into pp values(interval '23 2:25:33' day to second);
insert into pp values(interval '123 2:25:33.12' day(3) to second(2));
select * from pp;
+03 00:00:00.000000
+00 02:00:00.000000
+00 00:25:00.000000
+00 00:00:45.000000
+03 02:25:00.000000
+03 02:25:33.000000
+23 02:25:33.000000
+123 02:25:33.120000

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics