分享
 
 
 

PL/SQL学习笔记(二)

王朝mssql·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

number数字类型函数

ABS(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的最小整数。

COS(x)函数,返回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,有点像把模拟量数字化的意思。

SIN(x)函数,返回X的正弦。x是以弧度表示的角度。

SINH(x)函数,返回x的双曲正弦。

SQRT(x)函数,返回x的平方根,x不能是负数。

TAN(x)函数,返回x的正切。x是以弧度表示的角度。

TANH(x)函数,返回x的双曲正切。

TRUNC(x[,y])截取值函数,Y缺省为0,这样X被截取成一个整数。如果Y为负数,那么截取到小数点左边相应位置

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。

时间类型函数:(date)

内部存储格式:

世纪、年、月、日、小时、分钟、秒

默认格式是: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指数字值。

显示转换:(conversion)

TO_NUMBER(char[,'format_model']) 字符转换到数字类型

TO_DATE(char[,'format_model']) 字符转换到日期类型

格式说明符:要与前边要转换的字符串的格式要相同才能转换(匹配问题:格式和位数)。

TO_CHAR(date[,'format_model'[,nlsparams]])

第二个参数可以省略,不指定格式,按系统默认格式输出。

区分大小写。

使用FM(在格式控制符前添加)符号可以去掉空格或是首位的零。

如果指定了NLSPARAMS,则它控制返回字符串的月和日分量所使用的语言。格式为:

'NLS_DATA_LANGUAGE=language',language指需要的语言。

例:

select to_char(sysdate,'FMyyyy-mm-dd') from dual;

格式控制符的类型:

YYYY 四位的年

YEAR 年的拼写

MM 2位数字的月

MONTH 月的全名

MON 月名的前三个字符

DY 星期名的前三个字符

DAY 星期名的全称

DD 2位的天

时间格式控制符:

HH24:MI:SS AM

HH12:MI:SS PM

通过“”来实现加入特殊字符的格式控制符。

SELECT TO_CHAR(SYSDATE,'FMyyyy"年"mm"月"dd"日"') from dual;

DDSPTH

~~

DD是格式控制符。

TH是序数词,将日期转换成英文的序数词拼写。

SP是基数词,将日期转换成英文的基数词拼写。

TO_CHAR(NUM[,'format_model'[,nlsparams]])转换数字

将NUMBER类型参数NUM转换成VARCHAR2类型。如果指定FORMAT,它会控制整个转换。

如果没有指定FORMAT,那么结果字符串中将包含和NUM中有效位的个数相同的字符。NLSPARAMS用来指定小数点和千分符及货币符号。它的格式可为:'NLS_NUMERIC_CHARS=' ' dg ' 'NLS_CURRENCY= ' 'string' ' '

d和g分别代表小数点和千分符。STRING代表货币符号。

数字格式控制符:

9 代表一位数字(替换符。有,数字显示;没有。不什么都显示。)

0 代表一位数字(有数字,显示;没有,强制显示0。)

$ 美圆符号

L 本地货币

. 小数点

, 千分符

B 当整数部分为0时,将整数部分填充为空格。 例:B999

MI 返回带有后继符号而不是前导负号的负数值,正数值将带有后继的空格。999MI

S 返回一个前导符号或后继符号,正数为+,负数为-。 S9999 或 9999S

PR 使用尖括号返回负数。正数将有前导或后继空格。999PR

D 在指定位置返回一个小数点。两侧的9的个数指定了最大的位数。99D9

G 在指定位置返回千分符,G可以在FORMAT_model中出现多次。9G999G9

C 在指定位置返回ISO货币符号。C可以在FORMAT_model中出现多次。C99

L 在指定位置上返回本地货币符号。 L99

V 返回一个被乘以10的N次方的数值,这里N是V后边9的个数。99V99

EEEE 使用科学记数法返回该数值。9.99EEEE

RM 使用大写的罗马数字表示返回该数值。 RM

rm 使用小写的罗马数字表示返回该数值。 rm

FM 返回不含前导和后继空格的数值。 FM99.09

格式控制符位数一定要大于或等于NUMBER的位数,不能小于。

[1] [2] [3] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有