分享

oracle 日期时间数据类型

 X的世界 2013-10-26
  • 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';

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多