- 浏览: 250759 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
郑涵魁:
这才是好文啊
一次使用Eclipse Memory Analyzer分析Tomcat内存溢出 -
silvia016:
很有用,非常感谢
一次使用Eclipse Memory Analyzer分析Tomcat内存溢出 -
chengcwn:
好文章,多谢分享!
一次使用Eclipse Memory Analyzer分析Tomcat内存溢出 -
young7:
不错,特别是那个参考文章
JAVA调用Shell脚本--及阻塞的解决办法 -
zhujianbogo:
什么邮件列表,能说下解决方案吗? 谢谢 。 我也遇到这个问题了 ...
Tomcat与apache2集群的问题
有很多函数可以用来查询和处理时间戳,表5-9中列出了这些函数。
函 数 | 说 明 |
CURRENT_TIMESTAMP() | 返回一个 TIMESTAMP WITH TIME ZONE 类型的值,其中包括当前会话的日期和时间以及会话的时区 |
EXTRACT( { YEAR | MONTH | DAY | HOUR | MINUTE | SECOND } | { TIMEZONE_HOUR | TIMEZONE_MINUTE } | { TIMEZONE_REGION | } TIMEZONE_ABBR } FROM x) |
从x中提取并返回年、月、日、时、分、秒或时区,其中x可以是时间戳类型或DATE类型 |
FROM_TZ( x, time_zone) | 将TIMESTAMP类型的x转换为由time_zone指定的时区,并返回TIMESTAMP WITH TIMEZONE类型。time_zone必须被指定为+|- HH:MI格式的字符串。此函数一般将x和time_zone合并成一个值 |
LOCALTIMESTAMP | 返回一个TIMESTAMP 类型,其中包含会话的当前日期和时间 |
SYSTIMESTAMP | 返回一个TIMESTAMP WITH TIME ZONE类型,其中包括数据库的当前日期、时间,以及数据库时区 |
SYS_EXTRACT_UTC(x) | 将TIMESTAMP WITH TIMEZONE类型的x转换为一个TIMESTAMP类型,其中包含了UTC时区中的日期和时间 |
TO_TIMESTAMP(x, [format]) | 将字符串x转换为一个TIMESTAMP类型,还可以为x指定一个可选的参数format |
TO_TIMESTAMP_TZ(x, [format]) | 将字符串x转换为一个TIMESTAMP WITH TIMEZONE类型,还可以为x指定一个可选的参数format |
1. CURRENT_TIMESTAMP、LOCALTIMESTAMP和SYSTIMESTAMP
下面这个查询同时调用了CURRENT_TIMESTAMP、LOCALTIMESTAMP和SYSTIMESTAMP函数(我的会话时区和数据库时区都是PST,它比UTC晚8小时):
SELECT CURRENT_TIMESTAMP, LOCALTIMESTAMP, SYSTIMESTAMP FROM dual; CURRENT_TIMESTAMP ----------------------------------- LOCALTIMESTAMP ----------------------------------- SYSTIMESTAMP ----------------------------------- 05-NOV-07 12.15.32.734000 PM PST 05-NOV-07 12.15.32.734000 PM 05-NOV-07 12.15.32.734000 PM -08:00
如果将TIME_ZONE设置为EST,并重新执行上面这个查询,就会得到如下输出结果:
ALTER SESSION SET TIME_ZONE = 'EST'; Session altered. SELECT CURRENT_TIMESTAMP, LOCALTIMESTAMP, SYSTIMESTAMP FROM dual; CURRENT_TIMESTAMP ----------------------------------------------------------- LOCALTIMESTAMP ----------------------------------------------------------- SYSTIMESTAMP ----------------------------------------------------------- 05-NOV-07 03.19.57.562000 PM EST 05-NOV-07 03.19.57.562000 PM 05-NOV-07 12.19.57.562000 PM -08:00
下面这条语句将会话时区设置会PST:
ALTER SESSION SET TIME_ZONE = 'PST'; Session altered.
2. EXTRACT函数
EXTRACT函数用于从x中提取并返回年、月、日、时、分、秒或时区,其中x可以是时间戳类型或DATE类型。下面这个查询使用EXTRACT函数从由TO_DATE()返回的DATE类型中提取年、月、日:
SELECT EXTRACT(YEAR FROM TO_DATE('01-JAN-2008 19:15:26', 'DD-MON-YYYY HH24:MI:SS')) AS YEAR, EXTRACT(MONTH FROM TO_DATE('01-JAN-2008 19:15:26', 'DD-MON-YYYY HH24:MI:SS')) AS MONTH, EXTRACT(DAY FROM TO_DATE('01-JAN-2008 19:15:26', 'DD-MON-YYYY HH24:MI:SS')) AS DAY FROM dual; YEAR MONTH DAY ---------- ---------- ---------- 2008 1 1
下面这个查询使用EXTRACT函数从由TO_TIMESTAMP()返回的TIMESTAMP类型中提取时、分、秒:
SELECT EXTRACT(HOUR FROM TO_TIMESTAMP('01-JAN-2008 19:15:26', 'DD-MON-YYYY HH24:MI:SS')) AS HOUR, EXTRACT(MINUTE FROM TO_TIMESTAMP('01-JAN-2008 19:15:26', 'DD-MON-YYYY HH24:MI:SS')) AS MINUTE, EXTRACT(SECOND FROM TO_TIMESTAMP('01-JAN-2008 19:15:26', 'DD-MON-YYYY HH24:MI:SS')) AS SECOND FROM dual; HOUR MINUTE SECOND ---------- ---------- ---------- 19 15 26
最后这个查询使用EXTRACT函数从由TO_TIMESTAMP_TZ()返回的TIMESTAMP WITH TIMEZONE类型中提取时区的时、分、秒、区域和时区缩写:
SELECT EXTRACT(TIMEZONE_HOUR FROM TO_TIMESTAMP_TZ( '01-JAN-2008 19:15:26 -7:15', 'DD-MON-YYYY HH24:MI:SS TZH:TZM')) AS TZH, EXTRACT(TIMEZONE_MINUTE FROM TO_TIMESTAMP_TZ( '01-JAN-2008 19:15:26 -7:15', 'DD-MON-YYYY HH24:MI:SS TZH:TZM')) AS TZM, EXTRACT(TIMEZONE_REGION FROM TO_TIMESTAMP_TZ( '01-JAN-2008 19:15:26 PST', 'DD-MON-YYYY HH24:MI:SS TZR')) AS TZR, EXTRACT(TIMEZONE_ABBR FROM TO_TIMESTAMP_TZ( '01-JAN-2008 19:15:26 PST', 'DD-MON-YYYY HH24:MI:SS TZR')) AS TZA FROM dual; TZH TZM TZR TZA ---------- ---------- ----------- ---------- -7 -15 PST PST
3. FROM_TZ()
FROM_TZ(x, time_zone)将TIMESTAMP类型的x转换为由time_zone指定的时区,并返回TIMESTAMP WITH TIMEZONE类型。time_zone必须被指定为+|- HH:MI格式的字符串。此函数一般将x和time_zone合并成一个值。
例如,下面这个查询将时间戳2008-05-13 07:15:31.1234和与UTC的时差-7:00合并起来:
SELECT FROM_TZ(TIMESTAMP '2008-05-13 07:15:31.1234', '-7:00') FROM dual; FROM_TZ(TIMESTAMP'2008-05-1307:15:31.1234','-7:00') --------------------------------------------------- 13-MAY-08 07.15.31.123400000 AM -07:00
4. SYS_EXTRACT_UTC()
SYS_EXTRACT_UTC (x)用于将TIMESTAMP WITH TIMEZONE类型的x转换为一个包含UTC时区日期和时间的TIMESTAMP类型。
下面这个查询将2008-11-17 19:15:26 PST转换为UTC:
SELECT SYS_EXTRACT_UTC(TIMESTAMP '2008-11-17 19:15:26 PST') FROM dual; SYS_EXTRACT_UTC(TIMESTAMP'2008-11-1719:15:26PST') ------------------------------------------------- 18-NOV-08 03.15.26.000000000 AM
因为在冬季PST比UTC晚8个小时,因此这个查询返回的TIMESTAMP类型的值比2008-11-17 19:15:26 PST早了8个小时,即18-NOV-08 03.15.26 AM.。
如果是在夏季,则返回的TIMESTAMP类型的值只比UTC早7个小时。
SELECT SYS_EXTRACT_UTC(TIMESTAMP '2008-05-17 19:15:26 PST') FROM dual; SYS_EXTRACT_UTC(TIMESTAMP'2008-05-1719:15:26PST') ------------------------------------------------- 18-MAY-08 02.15.26.000000000 AM
5. TO_TIMESTAMP()
TO_TIMESTAMP(x,[format])用于将字符串x(可能是CHAR、VARCHAR2、NCHAR或NVARCHAR2)转换为一个TIMESTAMP类型,该函数中可以为x指定可选的参数format。
下面这个查询将字符串2005-05-13 07:15:31.1234转换为TIMESTAMP类型,格式为YYYY-MM-DD HH24:MI:SS.FF:
SELECT TO_TIMESTAMP('2008-05-13 07:15:31.1234', 'YYYY-MM-DD HH24:MI:SS.FF') FROM dual; TO_TIMESTAMP('2008-05-1307:15:31.1234','YYYY-MM-DDHH24:MI:SS.FF') ----------------------------------------------------------------- 13-MAY-08 07.15.31.123400000 AM
6. TO_TIMESTAMP_TZ()
TO_TIMESTAMP_TZ(x,[ format ])用于将字符串x转换为一个TIMESTAMP WITH TIMEZONE类型,该函数中可以为x指定可选的参数format。
下面这个查询向TO_TIMESTAMP_TZ函数传递时区PST(在格式字符串中使用TZR来识别):
SELECT TO_TIMESTAMP_TZ('2008-05-13 07:15:31.1234 PST', 'YYYY-MM-DD HH24:MI:SS.FF TZR') FROM dual; TO_TIMESTAMP_TZ('2008-05-1307:15:31.1234PST','YYYY-MM-DDHH24:MI:SS.FFTZR') -------------------------------------------------------------------------- 13-MAY-08 07.15.31.123400000 AM PST
下面这个查询使用与UTC的时差 -7:00(-7:00在格式字符串中用TZR和TZM来识别):
SELECT TO_TIMESTAMP_TZ('2008-05-13 07:15:31.1234 -7:00', 'YYYY-MM-DD HH24:MI:SS.FF TZH:TZM') FROM dual; TO_TIMESTAMP_TZ('2008-05-1307:15:31.1234-7:00','YYYY-MM-DDHH24:MI:SS.FFTZH -------------------------------------------------------------------------- 13-MAY-08 07.15.31.123400000 AM -07:00
7. 将字符串转换为TIMESTAMP WITH LOCAL TIME ZONE
使用CAST函数可以将一个字符串转换为TIMESTAMP WITH LOCAL TIME ZONE。第4章曾介绍过CAST(),回想一下,CAST(x AS type)将x转换为由type指定的兼容的数据库类型。
下面这个查询使用CAST()将字符串13-JUN-08转换为TIMESTAMP WITH LOCAL TIME ZONE:
SELECT CAST('13-JUN-08' AS TIMESTAMP WITH LOCAL TIME ZONE) FROM dual; CAST('13-JUN-08'ASTIMESTAMPWITHLOCALTIMEZONE) --------------------------------------------- 13-JUN-08 12.00.00.000000 AM
此查询返回的时间戳包含日期2008年6月13日和时间12 A.M.。
下面这个查询使用CAST()将一个更复杂的字符串转换为TIMESTAMP WITH LOCAL TIME ZONE:
SELECT CAST(TO_TIMESTAMP_TZ('2008-05-13 07:15:31.1234 PST', 'YYYY-MM-DD HH24:MI:SS.FF TZR') AS TIMESTAMP WITH LOCAL TIME ZONE) FROM dual; CAST(TO_TIMESTAMP_TZ('2008-05-1307:15:31.1234PST','YYYY-MM-DDHH24:MI:SS.FF -------------------------------------------------------------------------- 13-MAY-08 06.15.31.123400 AM
此查询返回的时间戳包含日期2008年5月13日和时间6:15:31.1234 AM PST(PST是数据库时区和会话时区)。
下面这个查询与上面的查询做相同的事情,只是时区是EST:
SELECT CAST(TO_TIMESTAMP_TZ('2008-05-13 07:15:31.1234 EST', 'YYYY-MM-DD HH24:MI:SS.FF TZR') AS TIMESTAMP WITH LOCAL TIME ZONE) FROM dual; CAST(TO_TIMESTAMP_TZ('2008-05-1307:15:31.1234EST','YYYY-MM-DDHH24:MI:SS.FF -------------------------------------------------------------------------- 13-MAY-08 04.15.31.123400 AM
此查询返回的时区包含日期2008年3月13日和时间4:15:31.1234 AM PST(因为PST比EST晚3小时,所以此时间戳返回的时间比实际查询的时间早3小时)。
发表评论
-
oracle 利用闪回 查看记录的历史信息
2012-02-07 09:15 1318利用闪回查看oracle的记录的历史记录, 通过历史时 ... -
ORA-00600: internal error code, arguments: [13310]
2012-01-15 21:21 1931前几天Java应用程序调用AIX下的Oracle时,报O ... -
Gather SCHEMA STATS
2011-12-21 11:07 0Gather SCHEMA STATS 2009-02- ... -
关于impdp时,的ora-39125异常
2011-12-20 10:27 3908处理对象类型 SCHEMA_EXPORT/TABLE/S ... -
删除oracle表空间
2011-12-19 16:30 1241drop tablespace tbname; --将 ... -
oracle外键引起的死锁
2011-09-30 21:10 3659今天系统测试的时候 ... -
impdp导入错误-版本问题
2011-09-09 13:02 5973今天帮同事用impdp导入数据库是发现错误, ... -
【转载】查询计划中集的势(Cardinality)的计算
2011-08-14 09:38 1149【转载】查询计划中集的势(Cardinality)的计算 原 ... -
Oracle 删除外键约束、禁用约束、启用约束
2011-08-06 15:42 1506禁用所有外键约束 select 'alter t ... -
oracle 9i中imp导入另外一个表空间
2011-05-16 13:29 2067版本:oracle 9i 有关具 ... -
oracle 导出表结构到sql文件
2011-03-02 14:46 1764SQL> set serveroutput ... -
【转】Oracle 10g DBMS_SCHEDULER的中度解析
2011-02-18 00:10 1364DBMS_SCHEDULER是Oracle 10G中新增的一个 ... -
LAG和LEAD函数统计
2010-12-03 20:02 1974Lag和Lead函数可以在一次查询中取出同一字段 ... -
Oracle SPOOL总结
2010-11-12 19:20 9227spool常用的设置 set colsep' ' ... -
SQLLDR简单应用
2010-11-11 14:10 1092参数说明: userid -- ORAC ... -
Oracle 10g 备份与恢复之(expdp与impdp)
2010-11-08 20:01 3490expdb/impdb工具 1)在服务端使用 ... -
oracle flashback 闪回
2010-10-19 22:44 11751、必须设定undo保留 ... -
sql loader
2010-09-29 12:42 0sql loader可以把一些以文本格式存放的数据顺利的 ... -
Oracle时间戳类型
2010-09-26 17:27 9310Oracle Databse 9i数据库引 ... -
ORACLE上下文 context
2010-09-21 16:00 2746今天做一个安全审计上下文对象,使用了 sys_ ...
相关推荐
oracle中日期类型与unix 时间戳的转换, Unix时间戳记是从'1970-01-01 00:00:00'GMT开始的秒数,表现为整数型。 Oracle中的时间是Date型,以下函数提供了两种时间转换的Oracle函数 --unix时间戳与date时间互转 ...
主要介绍了oracle数据库实现获取时间戳的无参函数的实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
其中主要棘手的在与迁移函数包等对象时的问题。 2、迁移错误详解 2.1、通用问题 说明:对于直接使用DTS迁移失败的包,最好从源端获取完整的定义,重新核查报错原因 —— 避免编译通过后,报错 xxx 对象未在 xxx ...
Oracle日期函数用于对Oracle数据库中的日期及时间进行处理,下面就为您详细介绍Oracle日期函数的用法,希望对您能有所启迪。 (1)SYSDATE和TRUNC 两个Oracle日期函数取Oracle服务器系统的日期和截掉小数部分的功能...
然后通过SCN_TO_TIMESTAMP函数可以将SCN转换为时间戳,从而找到最后DML操作时SCN的对应时间。但是,默认情况下,每行记录的ORA_ROWSCN是基于Block的,除非在建表的时候开启行级跟踪。 SELECT MAX(ORA_ROWSCN), SCN_...
在Oracle9i之前,虽然有一个NEW_TIME函数可以改变DATE的时间戳部分,但是还没有专门用来存储时区信息的数据类型。在Oracle9i中,我们可以使用DBTIMEZONE伪字段查询数据库的时区,使用 SESSIONTIMEZONE伪字段查询会话...
在技术会议和用户组会议上她乐于展现和分享有关Oracle数据库主题的思想.她的Email是michelle_malcher@ioug.org. 目录 封面 -14 封底 -13 扉页 -12 版权 -11 关于作者 -10 前言 -8 目录 -5 第1章 数据库基础 1 1.1 ...
日期时间函数(Datetime Functions)操作日期(date)、时间戳(timestamp,带有时区的时间戳,以及带有本地时区的时间戳)和interval(从天到秒的时间间隔,从年到月的时间间隔)值。 有些日期时间函数是为Oracle DATE...
注意——与所介绍主题相关的额外信息 章节测验——每章结束时的测验测试读者对所学知识的掌握程度。 目录 第1章 数据库基础 1.1 数据库定义 1.2 Ofacle Database 11g的体系结构 1.2.1 控制文件 1.2.2 联机重做日志...
oracle获得当前时间的,精确到毫秒 可以指定精确豪秒的位数 select to_char(systimestamp, ‘yyyymmdd hh24:mi:ss.ff ‘) from dual;–20120516 11:56:40.729083 select to_char(systimestamp, ‘yyyymmdd hh24:mi:...
除了以上提及的特性之外,还支持Oracle 8和Oracle 8i特性,如LOB定位、对象和参考、XML TYPE、时间戳、滚动查询、密码到期、外部程序开发以及MTS Oracle服务等。 主要功能: 按范例查询模式 ——TOracleDataSet组件...
《Oracle PL/SQL程序设计(第5版)》结构清晰,示例丰富,实践性强,适用于Oracle数据库开发人员、Oracle数据库管理员等相关数据库从业人员,也可以作为各大、中专院校相关专业师生的参考用书和相关培训机构的培训...
《Oracle PL/SQL程序设计(第5版)》结构清晰,示例丰富,实践性强,适用于Oracle数据库开发人员、Oracle数据库管理员等相关数据库从业人员,也可以作为各大、中专院校相关专业师生的参考用书和相关培训机构的培训...
在oracle数据库的开发中,常因为时间的问题大费周章,所以特地将ORACLE数据的日期函数收藏致此。乃供他日所查也。 add_months(d,n) 日期d加n个月 last_day(d) 包含d的月?的最后一天的日期 new_time(d,a,b) a?区的...
在oracle中有很多关于日期的函数,如: 1、add_months()用于从一个日期值增加或减少一些月份 date_value:=add_months(date_value,number_of_months) 例: SQL> select add_months(sysdate,12) “Next Year” ...
说明:SCN(System Change Number 简称 SCN)是当Oracle数据库更新后,由DBMS自动维护去累积递增的一个数字,可以理解成ORACLE数据库的时间戳,从ORACLE 10G开始,提供了函数可以实现SCN和时间进行相互转换;...
5.3.1 日期、时间、日期时间与时间戳 5.3.2 主流数据库系统中日期时间类型的表示方式 5.3.3 取得当前日期时间 5.3.4 日期增减 5.3.5 计算日期差额 5.3.6 计算一个日期是星期几 5.3.7 取得日期的指定...
5.3.1 日期、时间、日期时间与时间戳 5.3.2 主流数据库系统中日期时间类型的表示方式 5.3.3 取得当前日期时间 5.3.4 日期增减 5.3.5 计算日期差额 5.3.6 计算一个日期是星期几 5.3.7 取得日期的指定...
5.3.1 日期、时间、日期时间与时间戳 5.3.2 主流数据库系统中日期时间类型的表示方式 5.3.3 取得当前日期时间 5.3.4 日期增减 5.3.5 计算日期差额 5.3.6 计算一个日期是星期几 5.3.7 取得日期的指定...