内部存储格式:
世纪、年、月、日、小时、分钟、秒
默认格式是:DD-MON-RR。
SYSDATE返回当前的系统时间。
SELECTSYSDATEFROMDUAL;
对日期的数学运算
SELECT(SYSDATE-HIRE_DATE)/7FROMTABLENAMEWHEREROWNUM;
数字列
ADD_MONTHS(date,x)函数,返回加上X月后的日期DATE的值。X可以是任意整数。如果结果的月份中所包含的日分量少于DATE的月份的日分量,则返回结果月份的最后一天。如果不小于,则结果与DATE的日分量相同。时间分量也相同。
CURRENT_DATE以DATE类型返回会话时区当前的日期。这个函数同SYSDATE相似,除了SYSDATE不管当会话时区。
CURRENT_TIMESTAMP[(precision)]以TIMESTAMPWITHTIMEZONE类型返回会话时区当前的日期。如果指定precision,它指返回秒数的精度,缺省为6。
DBTIMEZONE返回数据库的时区。
LAST_DAY(日期)指定日期所在月份的最后一天的日期,这个函数可用来确定本月还有多少天。
LOCALTIMESTAMP[(precision)]以TIMESTAMP类型返回会话时区的当前日期。如果指定precision,它指返回秒数的精度,缺省为6。
MONTHS_BETWEEN(离当前比较近的日期date1,以前的日期)两个日期之间相差的月数(以日作为最小单位来计算的)。返回是相差的月数。如果date1和date2的日分量相同,或者这两个日期都分别是所在月的最后一天,那么返回结果是个整数。否则,返回结果包含一个分数,以一个月31天计算。
NEW_TIME(d,zone1,zone2)函数,当时区zone1中的日期和时间是D的时候,返回时区zone2中的日期和时间。
返回类型为DATE。zone1和zone2是字符字符串,另外的时区可在ORACLE9I中
通过查询V$TIMEZONE_NAMES得到。
NEXT_DAY(日期,星期几)指定日期后将要遇到的后七天的某一天的日期。
ROUND(日期,‘MONTH/YEAR')四舍五入得到新的日期。保留位置是月和年
SESSIONTIMEZONE返回当前会话的时区。返回类型是一个时区偏移或时区片名的字符字符串。如果指定格式,则与ALTERSESSION语句中的格式相同。
SYS_EXTRACT_UTC(datetime)从提供的DATETIME中以UTC(CoordinatedUniversalTime)返回时间。
DATETIME必须包含一个时区。
SYSTIMESTAMP以TIMESTAMPWITHTIMEZONE返回当前的日期和时间。当在分布式SQL语句中使用的时候,返回本地数据库的日期和时间。
TRUNC(日期,‘MONTH/YEAR')截取
TZ_OFFSET(timezone)以字符字符串返回提供的timezone和UTC之间的偏移量。timezone可以被指定为时区名或'+/-HH:HI'格式表示的偏移量。也可使用SESSIONTIMEZONE和DBTIMEZONE函数,返回格式为'+/-HH:HI'。
字符字符串时区
AST大西洋标准时
ADT大西洋夏令时
BST白令标准时
BDT白令夏令时
CST*标准时
CDT*夏令时
EST东部标准时
EDT东部夏令时
GMT格林威治平均时
HST阿拉斯加夏威夷标准时
HDT阿拉斯加夏威夷夏令时
MSTMountain标准时
MDTMountain夏令时
NST纽芬兰标准时
PST太平洋标准时
PDT太平洋夏令时
YSTYuKon标准时
YDTYuKon夏令时
日期和日期时间算术
运算返回类型
结果
d1-d2NUMBER
返回D1和D2之间相差的天数。该值是一个数值,其小数部分代表一天的几分之几。
dt1-dt2INTERVAL
返回DT1和DT2之间的时间间隔。
i1-i2INTERVAL
返回i1和i2之间的差距。
d1+d2N/A
非法——仅能进行两个日期之间的相减。
dt1+dt2N/A
非法——仅能进行两个日期之间的相减。
i1+i2INTERVAL
返回i1和i2的和。
d1+nDATE
在D1上加上N天作为DATE类型返回。N可以是实数,它包含一天的几分之几。
d1-nDATE
从D1上减去N天作为DATE类型返回。N可以是实数,它包含一天的几分之几。
dt1+i1DATETIME
返回DT1和I1的和。
dt1-i1DATETIME
返回DT1和I1之间的差距。
i1*nINTERVAL
返回I1的N次方。
i1/nINTERVAL
返回I1除以N的值。
表中注:
D1和D2指日期值;
DT1和DT2指日期时间值;
I1和I2指时间间隔值;
N指数字值。