- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle 中to_char和to_number等问题
oracle to_number、to_char介绍
to_number(文字,’格式’)to_char(数字, ‘格式’)to_char()这次只介绍to_char(数字, ‘格式’),明天介绍日期转化的。
主要格式如下:9 表示有效位数0 数字前用0补足位数B 用空格补足位数$ 在数字前加美元号L 在数字前加本地货币符号. 小数点位置, 分格符位置MI 负数时在最后边加负号PR 负数用括起来S 在前面加符号EEEE 科学计数法V 把原数字乘以10的N次方(N为V后面的位数)to_number函数如下:
Converts a string to the NUMBER data type TO_NUMBER(value[, format, NLS parameter]) RETURN NUMBER CREATE TABLE test (testcol VARCHAR2(10));INSERT INTO test VALUES (12345.67);SELECT TO_BINARY_DOUBLE(testcol) BIN_DOUBLE, TO_BINARY_FLOAT(testcol) BIN_FLOAT, TO_NUMBER(testcol) NMBRFROM test; Converts a HEX number to FLOAT TO_NUMBER(value, format); SELECT TO_NUMBER(0A, XX)FROM dual; Converts a HEX number to DECIMAL TO_NUMBER(binary_float | binary_double | number,hex mask) RETURN binary_float | binary_double | number; SELECT TO_NUMBER(100000,XXXXXXXX)FROM dual; 在垃圾短信项目中,用到了to_number方法,表中starttime字段存的是某一时间到1994年1月1日 00:00:00的秒数,字段类型为RAW,由于项目的原因,要涉及到改字段的时间比较。考虑了半天,将某一时间到1994年1月1日 00:00:00的秒数传入当做参数,然后将starttime转换成16进制,再通过to_number转换成数字,然后再比较。SQL语句如下:
select * from black_user_info where TO_NUMBER(rawtohex(starttime),XXXXXXXX) 496022400;
但是经过测试发现 select * from black_user_info where TO_NUMBER(starttime,XXXXXXXX) 496022400?? 好像也有同样的效果。raw类型和16进制有很密切的关系,因为在数据库里面,数字的raw类型就是按照16进制保存的,具体的关系就不是很清楚了,目前基本上一个ORACLE盲。
1. 9, 0 ,B 测试
SELECT
to_char(123.45, 0009.9),
to_char(123.45, 9999.9),
to_char(123.45, B999.9)
FROM dual;
结果为
TO_CHAR(123.45,0009.9) TO_CHAR(123.45,9999.9) TO_CHAR(123.45,B999.9)
------------------------ ------------------------ ------------------------
0123.5 123.5 123.5
2. $, L 测试
SELECT
to_char(123.45, $9999.9),
to_char(123.45, L9999.9)
FROM dual;
结果为
TO_CHAR(123.45,$9999.9) TO_CHAR(123.45,L9999.9)
------------------------- -------------------------
$123.5 ¥123.5
3. .,, 测试
SELECT
to_char(123.45, 9999.99),
to_char(1233123.45, 9,999,999.99)
FROM dual;
结果为
TO_CHAR(123.45,9999.99) TO_CHAR(1233
您可能关注的文档
- 《定风波》与专题赏析教学设计.doc
- 《夜归鹿门歌》精品.ppt
- 《出师表》最新ppt.ppt
- 《师说》优秀.ppt
- JS-所有的内置对象属性及方法.docx
- 《定风波》ppt.ppt
- 《小学生日常规范》知识竞赛.ppt
- 《岳阳楼记》参考33.ppt
- 《古代诗歌五首》1.ppt
- js操作frame详细解说,window.opener和window.parent的区别.docx
- 分析let s单元56ago2卷纸zheng unit56.pdf
- 塑胶材料其它分类原料pa9t 12.pdf
- md16x16数字媒体切换器设备.pdf
- 者参考项目发起人学科类型单位序列承包商修订页代码顺序典型.pdf
- 届世界天然气大会阿姆斯特丹2006add10288.pdf
- 期测试记录表每周weekly g1g6 journeys tests level 6 lesson26.pdf
- modernize-whitepaper现代化您应用程序白皮书.pdf
- anybackup产品典型案例分析.pdf
- 约克金融工程课程tfeslide32.pdf
- 广州市妇女儿童医疗中心历份教学药历01tjy.pdf
文档评论(0)