随笔-42  评论-12  文章-0  trackbacks-0
  • The DATE data type

  • The TIMESTAMP data types:

    • TIMESTAMP

    • TIMESTAMP WITH TIME ZONE

    • TIMESTAMP WITH LOCAL TIME ZONE

  • The INTERVAL data types:

    • INTERVAL YEAR TO MONTH

    • INTERVAL DAY TO SECOND

DATE类型包括日期和时间
TIMESTAMP的精度默认值是6,即6位的小数秒
INTERVAL 的YEAR精度默认值是2,DAY是2,SECOND是6

NUMTOYMINTERVAL函数可以将数字类型的值转换成INTERVAL YEAR TO MONTH类型,例如:NUMTOYMINTERVAL(2,'YEAR')
NUMTODSINTERVAL 函数可以将数字类型的值转换成INTERVAL DAY TO SECOND类型,例如:NUMTODSINTERVAL(5369.2589,'SECOND')


当列使用TIMESTAMP WITH TIME ZONE类型,但是插入数据不指定时区时,oracle会使用用户session时区。
TIMESTAMP WITH LOCAL TIME ZONE类型,插入的时间被转换成database时区的时间,然后存储。

oracle提供了一些有用的函数来完成字符串和日期类型之间的转换:
  • TO_DATE

  • TO_TIMESTAMP

  • TO_TIMESTAMP_TZ

  • TO_YMINTERVAL

  • TO_DSINTERVAL

  • NUMTOYMINTERVAL

  • NUMTODSINTERVAL

  • TO_CHAR

函数中的格式字符串默认格式由NLS_DATE_FORMAT, NLS_TIMESTAMP_FORMAT,  NLS_TIMESTAMP_TZ 这几个参数决定,可以查询视图NLS_SESSION_PARAMETERS来获取这几个参数的值。

SELECT parameter, value
FROM nls_session_parameters
WHERE parameter LIKE '%FORMAT';
PARAMETER                      VALUE
------------------------------ ------------------------------
NLS_DATE_FORMAT                DD-MON-RR
NLS_TIME_FORMAT                HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR
 
指定默认格式:ALTER SESSION SET NLS_DATE_FORMAT = 'MMDDYY';
 
posted on 2007-09-19 15:08 tianjuchuan 阅读(13947) 评论(0)  编辑 收藏 引用 所属分类: sql
只有注册用户登录后才能发表评论。