《oracle从入门到精通(PDF格式)》第10章


…………………………………………………………Page 15……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通 
多行函数:对多行数据(一组数据)进行计算并返回一个值的函数。
2、number 数字类型函数
z ABS(x) 函数,此函数用来返回一个数的绝对值。
z ACOS(x) 函数,返回X 的反余弦值。X 范围从 1 到…1,输入值从 0 到派,以弧度为单位。
z ASIN(x) 函数,返回X 的反正弦值。X 范围从 1 到…1,输入值从…PI/2 到 PI/2 ,以弧度为单位。
z ATAN(x) 函数,返回X 的反正切值。输入值从…PI/2 到 PI/2 ,以弧度为单位。
z BITAND(x;y) 函数;返回 X 和 Y 的与结果。X 和 Y 必须为非负整数。注意没有 BITOR 函数,但 
是在 UTL_RAW 包中有用于 RAW 值的位操作符。
z CEIL(x)函数,用来返回大于或等于X 的最小整数。
z COS(x)函数,返回x 的余弦值。x 是以弧度表示的角度。
z COSH(x)函数,返回X 的双曲余弦。
z EXP(x)函数,与power(x;y) 函数类似,不过不用指明基数,返回 E 的X 次幂。E=2。71828183。。。
z FLOOR(x) 函数,用来返回小于或等于X 的最大整数。
z LN(x) 函数,返回x 的自然对数。x 必须大于 0 。
z LOG(x;y) 函数,返回以X 为底 Y 的对数。底必须是不为0 和 1 的正数,Y 是任意正数。
z MOD(被除数,除数)求余函数,如果除数为 0,则返回被除数。
z POWER(x;y) 函数,返回X 的Y 次幂。底 X 和指数 Y 都不必是正整数,但如果 X 是负数的话, 
Y 必须是整数。
z ROUND(x';y') 函数,返回舍入到小数点右边Y 位的 X 值。Y 缺省为 0,这将X 舍入为最接近的 
整数。如果 Y 是负数,那么舍入到小数点左边相应的位上,Y 必须为整数。
z SIGN(x)函数,此函数用来返回一个数的正负值,若为一个正数则返回 1,若为一个负数则返回 
…1,若为 0 则仍返回 0,有点像把模拟量数字化的意思。
z SIN(x)函数,返回X 的正弦。x 是以弧度表示的角度。
z SINH(x)函数,返回x 的双曲正弦。
z SQRT(x)函数,返回x 的平方根,x 不能是负数。
z TAN(x)函数,返回x 的正切。x 是以弧度表示的角度。
z TANH(x)函数,返回x 的双曲正切。
z TRUNC(x';y')截取值函数,Y 缺省为 0,这样X 被截取成一个整数。如果 Y 为负数,那么截取 
到小数点左边相应位置
z WIDTH_BUCKET(x;min;max;num_buckets) 只能在 SQL 语句中使用。
使用WIDTH_BUCKET 可以根据输入参数创建等长的段。范围MIN 到MAX 被分为num_buckets 
节,每节有相同的大小。返回 X 所在的那一节。如果 X 小于 MIN ,将返回 0,如果X 大于或等于 
MAX ,将返回num_buckets+1。MIN 和 MAX 都不能为 NULL ,num_buckets 必须是一个正整数。如 
果 X 是 NULL ,则返回NULL 。
3、时间类型函数:(date)
内部存储格式:世纪、年、月、日、小时、分钟、秒
默认格式是:DD…MON…RR。
SYSDATE 返回当前的系统时间。
SELECT SYSDATE FROM DUAL;
第 15 页,共 106 页 
…………………………………………………………Page 16……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通 
3。1、对日期的数学运算
SELECT (SYSDATE…HIRE_DATE)/7 FROM TABLENAME WHERE ROWNUM;
SYSDATE…HIRE_DATE:数字列
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 中
通过查询 VTIMEZONE_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 阿拉斯加夏威夷标准时
第 16 页,共 106 页 
…………………………………………………………Page 17……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通 
HDT 阿拉斯加夏威夷夏令时
MST Mountain 标准时
MDT Mountain 夏令时
NST 纽芬兰标准时
PST 太平洋标准时
PDT 太平洋夏令时
YST YuKon 标准时
YDT YuKon 夏令时
3。2、日期和日期时间算术
运算 返回类型
结果
d1…d2 NUMBER
返回 D1 和 D2 之间相差的天数。该值是一个数值,其小数部分代表一天的几分之几。
dt1…dt2 INT
小说推荐
返回首页返回目录