- 浏览: 256020 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
郑涵魁:
这才是好文啊
一次使用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 1365利用闪回查看oracle的记录的历史记录, 通过历史时 ... -
ORA-00600: internal error code, arguments: [13310]
2012-01-15 21:21 1978前几天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 3958处理对象类型 SCHEMA_EXPORT/TABLE/S ... -
删除oracle表空间
2011-12-19 16:30 1275drop tablespace tbname; --将 ... -
oracle外键引起的死锁
2011-09-30 21:10 3717今天系统测试的时候 ... -
impdp导入错误-版本问题
2011-09-09 13:02 6094今天帮同事用impdp导入数据库是发现错误, ... -
【转载】查询计划中集的势(Cardinality)的计算
2011-08-14 09:38 1204【转载】查询计划中集的势(Cardinality)的计算 原 ... -
Oracle 删除外键约束、禁用约束、启用约束
2011-08-06 15:42 1623禁用所有外键约束 select 'alter t ... -
oracle 9i中imp导入另外一个表空间
2011-05-16 13:29 2111版本:oracle 9i 有关具 ... -
oracle 导出表结构到sql文件
2011-03-02 14:46 1822SQL> set serveroutput ... -
【转】Oracle 10g DBMS_SCHEDULER的中度解析
2011-02-18 00:10 1425DBMS_SCHEDULER是Oracle 10G中新增的一个 ... -
LAG和LEAD函数统计
2010-12-03 20:02 2028Lag和Lead函数可以在一次查询中取出同一字段 ... -
Oracle SPOOL总结
2010-11-12 19:20 9271spool常用的设置 set colsep' ' ... -
SQLLDR简单应用
2010-11-11 14:10 1138参数说明: userid -- ORAC ... -
Oracle 10g 备份与恢复之(expdp与impdp)
2010-11-08 20:01 3529expdb/impdb工具 1)在服务端使用 ... -
oracle flashback 闪回
2010-10-19 22:44 12221、必须设定undo保留 ... -
sql loader
2010-09-29 12:42 0sql loader可以把一些以文本格式存放的数据顺利的 ... -
Oracle时间戳类型
2010-09-26 17:27 9407Oracle Databse 9i数据库引 ... -
ORACLE上下文 context
2010-09-21 16:00 2821今天做一个安全审计上下文对象,使用了 sys_ ...
相关推荐
oracle中日期类型与unix 时间戳的转换, Unix时间戳记是从'1970-01-01 00:00:00'GMT开始的秒数,表现为整数型。 Oracle中的时间是Date型,以下函数提供了两种时间转换的Oracle函数 --unix时间戳与date时间互转 ...
如果尝试转换的字符串格式与提供的格式模型不符,Oracle会抛出错误。 2. TO_TIMESTAMP函数: 当需要考虑时分秒时,TO_TIMESTAMP函数就派上用场了。这个函数将字符串转换为时间戳类型,同样需要指定日期时间格式...
在处理与时间相关的业务逻辑时,有时我们需要获取当前时间的时间戳,以便进行各种计算或比较。本文将详细介绍如何在Oracle中创建一个无参数的函数来获取时间戳。 首先,我们来看创建这个函数的代码: ```sql ...
Oracle 10g是一款历史悠久但仍然广泛使用的数据库管理系统,它提供了丰富的函数库,使得数据库管理和查询更为便捷高效。本文将深入探讨Oracle 10g中的关键函数,旨在为数据库管理员和开发人员提供全面的参考。 一、...
Oracle数据库系统中,日期函数是进行时间数据处理的关键工具,对于数据库管理员和开发人员来说,理解和熟练使用这些函数至关重要。本篇文章将全面总结Oracle中的日期函数,帮助你解决日常工作中遇到的各种日期处理...
通过这种方式,可以看到每次迭代的具体时间戳以及迭代次数,直到函数完全执行完毕。 #### 四、应用场景 管道函数特别适用于以下几种情况: - 需要逐步处理大量数据并逐步返回结果的场景。 - 需要在处理过程中实时...
7. **其他函数**:Oracle还提供许多其他功能,如 `DBMS_OUTPUT.PUT_LINE()` 用于调试输出,`USER` 获取当前用户,`SYSTimestamp` 获取系统时间戳,`CONNECT_BY_ROOT` 在层次查询中找到根节点等。 "Oracle离线函数...
### DB2常用函数与Oracle比较 本文档旨在深入解析DB2和Oracle数据库中常用函数的异同之处,以便于从一种数据库系统迁移至另一种系统的人员能够快速掌握并适应新的环境。我们将从类型转换函数、时间日期相关的函数...
Oracle数据库是世界上最广泛使用的数据库系统之一,其强大的功能和丰富的内置函数是其核心优势之一。在Oracle中,函数用于处理各种类型的数据,包括数学运算、字符串处理、日期时间操作、逻辑判断等。以下是对...
Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的内置函数,以帮助用户进行数据查询、处理和分析。在Oracle中,函数被广泛应用于SQL查询和PL/SQL编程中,以实现各种复杂的计算和逻辑操作。本篇文章...
### Oracle内部函数详解 Oracle数据库提供了丰富的内置函数,这些函数被广泛应用于各种SQL查询和PL/SQL编程场景中,极大地提高了开发效率并简化了复杂逻辑的实现。根据Oracle官方文档和实际应用经验,我们将这些...
在Oracle中,内置函数大致可以分为数学函数、字符串函数、日期时间函数、转换函数、系统信息函数和条件判断函数等几大类。 1. **数学函数**: - ABS:返回一个数的绝对值。 - CEIL:向上取整,返回大于或等于指定...
### 一、日期时间相关函数 #### 1. sysdate `sysdate`函数返回系统当前的日期和时间,格式为`YYYY-MM-DD HH24:MI:SS`。在日常开发中,`sysdate`常用于获取系统当前时间戳,例如: ```sql SELECT SYSDATE FROM DUAL;...
Oracle数据库系统是世界上最广泛使用的数据库管理系统之一,它包含了大量的内置函数,这些函数极大地增强了SQL查询的能力,提高了数据处理的效率。本篇文章将详细介绍Oracle数据库中的一些关键函数,并提供实际应用...
Oracle 数据类型和函数 Oracle 数据类型是指一组性质相同的值的集合以及定义于这个值集合上的一组操作的总称。在 Oracle 数据库中,数据类型可以分为字符型、数值型、日期型和其它类型等几类。 Oracle 数据类型...
Oracle 时间函数 Oracle 时间函数是一个强大的工具,用于处理和操作日期和时间数据。在 Oracle 中,时间函数可以分为两大类:日期函数和时间函数。日期函数用于处理日期数据,时间函数用于处理时间数据。 一、...
由于Oracle中的视图、函数(Function)、存储过程(Procedure)等对象之间存在着复杂的依赖关系,因此当某个对象被修改后,可能会导致与其相关的其他对象变得无效(Invalid)。在实际操作中,虽然我们会关注所修改的...