PL/SQL 日期时间类型函数及运算
程序员文章站
2022-05-07 17:11:55
...
PL/SQL 日期时间类型函数及运算
内部存储格式:世纪、年、月、日、小时、分钟、秒
默认格式是:DD-MON-RR。
SYSDATE 返回当前的系统时间。
SELECT SYSDATE FROM DUAL;
对日期的数学运算
SELECT (SYSDATE-HIRE_DATE)/7 FROM TABLENAME WHERE ROWNUM;
数字列
ADD_MONTHS(date,x)函数,返回加上X月后的日期DATE的值。X可以是任意整数。如果结果的月份中所包含的 日分量少于DATE的月份的日分量,则返回结果月份的最后一天。如果不小于,则 结果与DATE的日分量相同。时间分量也相同。
CURRENT_DATE 以DATE类型返回会话时区当前的日期。这个函数同SYSDATE相似,除了SYSDATE不管当 会话时区。
CURRENT_TIMESTAMP[(precision)] 以TIMESTAMP WITH TIMEZONE 类型返回会话时区当前的日期。如果 指定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 返回当前会话的时区。返回类型是一个时区偏移或时区片名的字符字符串。如果指 定格式,则与 ALTER SESSION 语句中的格式相同。
SYS_EXTRACT_UTC(datetime) 从提供的DATETIME中以UTC(Coordinated Universal Time)返回时间。
DATETIME必须包含一个时区。
SYSTIMESTAMP 以TIMESTAMP WITH TIMEZONE 返回当前的日期和时间。当在分布式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 阿拉斯加夏威夷夏令时
MST Mountain标准时
MDT Mountain夏令时
NST 纽芬兰标准时
PST 太平洋标准时
PDT 太平洋夏令时
YST YuKon标准时
YDT YuKon夏令时
日期和日期时间算术
运算 返回类型
结果
d1-d2 NUMBER
返回D1和D2之间相差的天数。该值是一个数值,其小数部分代表一天的几分之几。
dt1-dt2 INTERVAL
返回DT1和DT2之间的时间间隔。
i1-i2 INTERVAL
返回i1和i2之间的差距。
d1+d2 N/A
非法——仅能进行两个日期之间的相减。
dt1+dt2 N/A
非法——仅能进行两个日期之间的相减。
i1+i2 INTERVAL
返回i1和i2的和。
d1+n DATE
在D1上加上N天作为DATE类型返回。N可以是实数,它包含一天的几分之几。
d1-n DATE
从D1上减去N天作为DATE类型返回。N可以是实数,它包含一天的几分之几。
dt1+i1 DATETIME
返回DT1和I1的和。
dt1-i1 DATETIME
返回DT1和I1之间的差距。
i1*n INTERVAL
返回I1的N次方。
i1/n INTERVAL
返回I1除以N的值。
表中注:
D1和D2指日期值;
DT1和DT2指日期时间值;
I1和I2指时间间隔值;
N指数字值。
上一篇: 正则表达式 - php正则问题
下一篇: MySQL登陆问题总结_MySQL