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';