ABS(x) 函数,此函数用来返回一个数的绝对值。
SIN(x)函数,返回X的正弦。x是以弧度表示的角度。
COS(x)函数,返回x的余弦值。x是以弧度表示的角度。
TAN(x)函数,返回x的正切。x是以弧度表示的角度。
ACOS(x)函数,返回X的反余弦值。X范围从1到-1,输入值从0到派,以弧度为单位。
ASIN(x)函数,返回X的反正弦值。X范围从1到-1,输入值从-PI/2到PI/2,以弧度为单位。
ATAN(x)函数,返回X的反正切值。输入值从-PI/2到PI/2,以弧度为单位。
BITAND(x,y)函数,返回X和Y的与结果。X和Y必须为非负整数。注意没有BITOR函数,但是在UTL_RAW包中有用于RAW值的位操作符。
CEIL(x)函数,用来返回大于或等于X的最小整数。
COSH(x)函数,返回X的双曲余弦。
EXP(x)函数,与power(x,y)函数类似,不过不用指明基数,返回E的X次幂。E=2.71828183...
FLOOR(x)函数,用来返回小于或等于X的最大整数。
LN(x)函数,返回x的自然对数。x必须大于0。
LOG(x,y)函数,返回以X为底Y的对数。底必须是不为0和1的正数,Y是任意正数。
MOD(被除数,除数)求余函数,如果除数为0,则返回被除数。
POWER(x,y)函数,返回X的Y次幂。底X和指数Y都不必是正整数,但如果X是负数的话,Y必须是整数。
ROUND(x[,y])函数,返回舍入到小数点右边Y位的X值。Y缺省为0,这将X舍入为最接近的整数。如果Y是负数,那么舍入到小数点左边相应的位上,Y必须为整数。
SIGN(x)函数,此函数用来返回一个数的正负值,若为一个正数则返回1,若为一个负数则返回-1,若为0则仍返回0,有点像把模拟量数字化的意思。
SINH(x)函数,返回x的双曲正弦。
SQRT(x)函数,返回x的平方根,x不能是负数。
TANH(x)函数,返回x的双曲正切。
TRUNC(x[,y])截取值函数,Y缺省为0,这样X被截取成一个整数。如果Y为负数,那么截取到小数点左边相应位置。也可以截取日期,TRUNC(date,[fmt]):
使用WIDTH_BUCKET可以根据输入参数创建等长的段。范围MIN到MAX被分为num_buckets
节,每节有相同的大小。返回X所在的那一节。如果X小于MIN,将返回0,如果X大于或等于
MAX,将返回num_buckets+1.MIN和MAX都不能为NULL,num_buckets必须是一个正整数。如
果X是NULL,则返回NULL。
时间类型函数:(date)
内部存储格式:世纪、年、月、日、小时、分钟、秒
默认格式是:DD-MON-RR。
SYSDATE 返回当前的系统时间。
SELECT SYSDATE FROM DUAL
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(CoordinatedUniversal Time)返回时间。DATETIME 必须包含一个时区。
SYSTIMESTAMP以TIMESTAMP WITH TIMEZONE 返回当前的日期和时间。当在分布式 SQL 语句中使用的时候,返回本地数据库的日期和时间。
TRUNC(日期,‘MONTH/YEAR’) 截取
TZ_OFFSET(timezone) 以字符字符串返回提供的 timezone 和 UTC 之间的偏移量。timezone可以被指定为时区名或'+/-HH:HI'格式表示的偏移量。也可使用 SESSIONTIMEZONE 和DBTIMEZONE 函数,返回格式为'+/-HH:HI'。
日期和日期时间算术
运算 返回类型 结果
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 指数字值。
显示转换
可以用于group by语句进行按年、月、周、日分组
TO_NUMBER(char[,'format_model']) 字符转换到数字类型
TO_DATE(char[,'format_model']) 字符转换到日期类型
格式说明符:要与前边要转换的字符串的格式要相同才能转换(匹配问题:格式和位数)。
TO_CHAR(date[,'format_model'[,nlsparams]])
第二个参数可以省略,不指定格式,按系统默认格式输出。
区分大小写。
格式控制符的类型:
YYYY 四位的年
YEAR 年的拼写
MM 2 位数字的月
MONTH 月的全名
MON 月名的前三个字符
IW周
DY 星期名的前三个字符
DAY 星期名的全称
DD 2 位的天
时间格式控制符:
HH24:MI:SS AM
HH12:MI:SS PM
通过“”来实现加入特殊字符的格式控制符,将数据库中的时间转换为字符串的一个格式输出方式。fm是format_modual的缩写。
SELECT TO_CHAR(SYSDATE,'FMyyyy"年"mm"月"dd"日"') from dual;
select TO_CHAR(TO_DATE('5-7-2013 10:15:27','DD-MM-YYYY HH24:MI:SS'),'fmddspth') from dual;
输出为:fifth。
TO_CHAR(NUM)转换数字
将 NUMBER 类型参数 NUM 转换成 VARCHAR2 类型。