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


返回 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 指数字值。
第 17 页,共 106 页 
…………………………………………………………Page 18……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通 
3。3、显示转换:(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;
5。格式控制符的类型:
YYYY 四位的年
YEAR 年的拼写
MM 2 位数字的月
MONTH 月的全名
MON 月名的前三个字符
DY 星期名的前三个字符
DAY 星期名的全称
DD 2 位的天
6。时间格式控制符:
HH24:MI:SS AM
HH12:MI:SS PM
7。通过“”来实现加入特殊字符的格式控制符。
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 本地货币
第 18 页,共 106 页 
…………………………………………………………Page 19……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通 
。 小数点
; 千分符
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 的位数,不能小于。
用 RR 解决跨世纪问题: 小于 50 的认为是 1950…2050
大于 50 的认为是 1951…1999
数字和日期是不能相互转换的。
ASCIISTR(string)
返回只包含有效的 SQL字符和斜线的字符串。string 中的任何无效的字符将被转换为一个相当 
的数字,在之前加上斜线。
BIN_TO_NUM(num';num'。。。)
将一位矢量转换位相当的数字。它的参数是一系列逗号隔开的 NUMS,每一个都必须是 0 或1。
例如 BIN_TO_NUM(1;0;1;1)将返回 11,因为 11 的二进制表示是 1011。当使用分组集合和 GROUP
BY 子句时该函数很有用。
CHARTOROWID(x)函数,
将字符串转换成一个 ROWID 类型的值,注意格式必须采用 ROWID 数据类型格式,即“数据块号: 
行序号:数据文件号”。
POSE(string)
以相同字符集中完全规格化 Unicode 形式返回string。string可以是CHAR、VARCHAR2、NCHAR、 
NVARCHAR2、CLOB或 NCLOB 类型。
DEPOSE(string)
返回一个 Unicode 字符串。它是 string 的规范分解。string 可以是 CHAR、VARCHAR2、 NCHAR、 
NVARCHAR2、CLOB或 NCLOB 类型。
FROM_TZ(timestamp;timezone)
返回一个 TIMESTAMP WITH TIMEZONE 类型值。它将 TIMESTAMP(没有时区信息)和提供的 TIMEZONE 
组合在一起。
HEXTORAW(string)
将由 STRING 表示的二进制数值转换为一个 RAW数值。STRING 应该包含十六进制值。STRING 中 
的每两个字符表示结果 RAW 中的一个字节。HEXTORAW 和RAWTOHEX 互为反函数。
NUMTODSINTERVAL(x;unit)
第 19 页,共 106 页 
…………………………………………………………Page 20……………………………………………………………
资源来自网络,仅供学习! Oracle ?
小说推荐
返回首页返回目录