1 / 15

Oracle9 i/10g 日期时间函数

Oracle9 i/10g 日期时间函数. 目标. 完成本课后, 您应当能够使用下面的日期时间函数: TZ_OFFSET CURRENT_DATE CURRENT_TIMESTAMP LOCALTIMESTAMP DBTIMEZONE SESSIONTIMEZONE EXTRACT FROM_TZ TO_TIMESTAMP TO_TIMESTAMP_TZ TO_YMINTERVAL. 时区. +07:00. -08:00. +02:00. +10:00. -05:00. 图中表示当格林尼治时间是 12:00 时,其它时区的时间。.

Download Presentation

Oracle9 i/10g 日期时间函数

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Oracle9i/10g日期时间函数

  2. 目标 完成本课后, 您应当能够使用下面的日期时间函数: • TZ_OFFSET • CURRENT_DATE • CURRENT_TIMESTAMP • LOCALTIMESTAMP • DBTIMEZONE • SESSIONTIMEZONE • EXTRACT • FROM_TZ • TO_TIMESTAMP • TO_TIMESTAMP_TZ • TO_YMINTERVAL

  3. 时区 +07:00 -08:00 +02:00 +10:00 -05:00 图中表示当格林尼治时间是 12:00 时,其它时区的时间。

  4. Oracle9i 日期时间支持 • 在 Oracle9i 中,你能够在你的日期和时间数据中包含时区,并且提供对小数秒的支持 • 3 中新的日期时间数据类型: • TIMESTAMP • TIMESTAMP WITH TIME ZONE (TSTZ) • TIMESTAMP WITH LOCAL TIME ZONE (TSLTZ) • Oracle9i服务器提供对日期时间数据类型的夏令时支持

  5. SELECT TZ_OFFSET('US/Eastern') FROM DUAL; TZ_OFFSET • 显示对时区 'US/Eastern'的时区偏移量 • 显示对时区 'Canada/Yukon'的时区偏移量 SELECT TZ_OFFSET('Canada/Yukon') FROM DUAL; • 显示对时区 'Europe/London'的时区偏移量 SELECT TZ_OFFSET('Europe/London') FROM DUAL;

  6. ALTER SESSION SET TIME_ZONE = '-5:0'; SELECT SESSIONTIMEZONE, CURRENT_DATE FROM DUAL; ALTER SESSION SET TIME_ZONE = '-8:0';SELECT SESSIONTIMEZONE, CURRENT_DATE FROM DUAL; CURRENT_DATE • 显示在会话时区中的当前日期和时间 ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YYYY HH24:MI:SS'; • CURRENT_DATE对于会话时区是敏感的 • 在罗马日历中返回值是日期

  7. CURRENT_TIMESTAMP • 显示在会话时区中的当前日期和时间,包含小数秒 ALTER SESSION SET TIME_ZONE = '-5:0'; SELECT SESSIONTIMEZONE, CURRENT_TIMESTAMP FROM DUAL; • CURRENT_TIMESTAMP对于会话时区是敏感的 • 返回值是TIMESTAMP WITH TIME ZONE数据类型 ALTER SESSION SET TIME_ZONE = '-8:0'; SELECT SESSIONTIMEZONE, CURRENT_TIMESTAMP FROM DUAL;

  8. LOCALTIMESTAMP • 以 TIMESTAMP数据类型的值显示在会话时区中的当前日期和时间 ALTER SESSION SET TIME_ZONE = '-5:0';SELECT CURRENT_TIMESTAMP, LOCALTIMESTAMP FROM DUAL; ALTER SESSION SET TIME_ZONE = '-8:0'; SELECT CURRENT_TIMESTAMP, LOCALTIMESTAMP FROM DUAL; • LOCALTIMESTAMP返回一个TIMESTAMP值,而CURRENT_TIMESTAMP返回一个TIMESTAMP WITH TIME ZONE 值

  9. DBTIMEZONE和SESSIONTIMEZONE • 显示数据库时区的值 SELECT DBTIMEZONE FROM DUAL; • 显示会话时区的值 SELECT SESSIONTIMEZONE FROM DUAL;

  10. SELECT last_name, hire_date, EXTRACT (MONTH FROM HIRE_DATE) FROM employees WHERE manager_id = 100; EXTRACT • 从 SYSDATE中显示年 SELECT EXTRACT (YEAR FROM SYSDATE) FROM DUAL; • 从 HIRE_DATE中显示 MANAGER_ID是100的雇员的月

  11. SELECT FROM_TZ(TIMESTAMP '2000-03-28 08:00:00', 'Australia/North') FROM DUAL; 用FROM_TZ转换 TIMESTAMP • 显示TIMESTAMP值'2000-03-28 08:00:00' 作为一个TIMESTAMP WITH TIME ZONE值 SELECT FROM_TZ(TIMESTAMP '2000-03-28 08:00:00','3:00') FROM DUAL; • 对于时区 'Australia/North' 显示TIMESTAMP值'2000-03-28 08:00:00'作为一个TIMESTAMP WITH TIME ZONE值

  12. 用TO_TIMESTAMP和TO_TIMESTAMP_TZ转换 STRING到TIMESTAMP • 显示字符串'2000-12-01 11:00:00' 作为TIMESTAMP 值 SELECT TO_TIMESTAMP ('2000-12-01 11:00:00', 'YYYY-MM-DD HH:MI:SS') FROM DUAL; • 显示字符串'1999-12-01 11:00:00 -8:00' 作为TIMESTAMP WITH TIME ZONE 值 SELECT TO_TIMESTAMP_TZ('1999-12-01 11:00:00 -8:00', 'YYYY-MM-DD HH:MI:SS TZH:TZM')FROM DUAL;

  13. 用 TO_YMINTERVAL转换时间间隔 • 显示一个日期,该日期是,工作在 DEPARTMENT_ID是20的部门的雇员,在受雇之后一年两个月的日期 SELECT hire_date, hire_date + TO_YMINTERVAL('01-02') AS HIRE_DATE_YMININTERVAL FROM EMPLOYEESWHERE department_id = 20;

  14. TZ_OFFSET FROM_TZ TO_TIMESTAMP TO_TIMESTAMP_TZ TO_YMINTERVAL CURRENT_DATE CURRENT_TIMESTAMP LOCALTIMESTAMP DBTIMEZONE SESSIONTIMEZONE EXTRACT 小结 在本课中, 您应该已经学会如何使用下面的函数:

  15. 练习 16 概览 本章练习包括使用 Oracle9i日期时间函数:

More Related