精华内容
下载资源
问答
  • TO_CHAR 是把日期或数字转换为字符串TO_DATE 是把字符串转换为数据库中得日期类型转换函数TO_NUMBER 将字符转化为数字 TO_CHAR使用TO_CHAR函数处理数字TO_CHAR(number, '格式')TO_CHAR(salary,’$99,999.99’);...

    TO_CHAR 是把日期或数字转换为字符串TO_DATE 是把字符串转换为数据库中得日期类型转换函数TO_NUMBER 将字符转化为数字 TO_CHAR使用TO_CHAR函数处理数字TO_CHAR(number, '格式')TO_CHAR(salary,’$99,999.99’);使用TO_CHAR函数处理日期TO_CHAR(date,’格式’); TO_NUMBER使用TO_NUMBER函数将字符转换为数字TO_NUMBER(char[, '格式']) TO_DATE使用TO_DATE函数将字符转换为日期TO_DATE(char[, '格式']) 数字格式格式9 代表一个数字0 强制显示0$ 放置一个$符L 放置一个浮动本地货币符. 显示小数点, 显示千位指示符 日期格式格式控制 描述YYYY、YYY、YY 分别代表4位、3位、2位的数字年YEAR 年的拼写MM 数字月MONTH 月的全拼MON 月的缩写DD 数字日DAY 星期的全拼DY 星期的缩写AM 表示上午或者下午HH24、HH12 12小时制或24小时制MI 分钟SS 秒钟SP 数字的拼写TH 数字的序数词“特殊字符” 假如特殊字符HH24:MI:SS AM 15:43:20 PM日期例子:SELECT TO_DATE('2006-05-01 19:25:34', 'YYYY-MM-DD HH24:MI:SS') FROM DUALSELECT TO_DATE('2006-05-01 19:25', 'YYYY-MM-DD HH24:MI') FROM DUALSELECT TO_DATE('2006-05-01 19', 'YYYY-MM-DD HH24') FROM DUALSELECT TO_DATE('2006-05-01', 'YYYY-MM-DD') FROM DUALSELECT TO_DATE('2006-05', 'YYYY-MM') FROM DUALSELECT TO_DATE('2006', 'YYYY') FROM DUAL日期说明:当省略HH、MI和SS对应的输入参数时,Oracle使用0作为DEFAULT值。如果输入的日期数据忽略时间部分,Oracle会将时、分、秒部分都置为0,也就是说会取整到日。同样,忽略了DD参数,Oracle会采用1作为日的默认值,也就是说会取整到月。但是,不要被这种“惯性”所迷惑,如果忽略MM参数,Oracle并不会取整到年,取整到当前月。注意:1.在使用Oracle的to_date函数来做日期转换时,可能会直觉地采用“yyyy-MM-dd HH:mm:ss”的格式作为格式进行转换,但是在Oracle中会引起错误:“ORA 01810 格式代码出现两次”。如:select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') from dual;原因是SQL中不区分大小写,MM和mm被认为是相同的格式代码,所以Oracle的SQL采用了mi代替分钟。select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual;2.另要以24小时的形式显示出来要用HH24select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;//mi是分钟select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;//mm会显示月份

    TO_DATE格式(以时间:2007-11-02   13:45:25为例)Year:yy two digits 两位年                显示值:07yyy three digits 三位年                显示值:007yyyy four digits 四位年                显示值:2007Month:mm    number     两位月              显示值:11mon    abbreviated 字符集表示          显示值:11月,若是英文版,显示novmonth spelled out 字符集表示          显示值:11月,若是英文版,显示novemberDay:dd    number         当月第几天        显示值:02ddd    number         当年第几天        显示值:02dy    abbreviated 当周第几天简写    显示值:星期五,若是英文版,显示friday    spelled out   当周第几天全写    显示值:星期五,若是英文版,显示fridayddspth spelled out, ordinal twelfthHour:hh    two digits 12小时进制            显示值:01hh24 two digits 24小时进制            显示值:13Minute:mi    two digits 60进制                显示值:45Second:ss    two digits 60进制                显示值:25其它Q     digit         季度                  显示值:4WW    digit         当年第几周            显示值:44W    digit          当月第几周            显示值:124小时格式下时间范围为: 0:00:00 - 23:59:59....12小时格式下时间范围为: 1:00:00 - 12:59:59 ....1. 日期和字符转换函数用法(to_date,to_char)select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual;   //日期转化为字符串select to_char(sysdate,'yyyy') as nowYear   from dual;   //获取时间的年select to_char(sysdate,'mm')    as nowMonth from dual;   //获取时间的月select to_char(sysdate,'dd')    as nowDay    from dual;   //获取时间的日select to_char(sysdate,'hh24') as nowHour   from dual;   //获取时间的时select to_char(sysdate,'mi')    as nowMinute from dual;   //获取时间的分select to_char(sysdate,'ss')    as nowSecond from dual;   //获取时间的秒select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss')    from dual//2.select to_char( to_date(222,'J'),'Jsp') from dual显示Two Hundred Twenty-Two3.求某天是星期几select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual;星期一select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;monday设置日期语言ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';也可以这样TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American')4. 两个日期间的天数select floor(sysdate - to_date('20020405','yyyymmdd')) from dual;5. 时间为null的用法select id, active_date from table1UNIONselect 1, TO_DATE(null) from dual;注意要用TO_DATE(null)6.月份差a_date between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd')那么12月31号中午12点之后和12月1号的12点之前是不包含在这个范围之内的。所以,当时间需要精确的时候,觉得to_char还是必要的7. 日期格式冲突问题输入的格式要看你安装的ORACLE字符集的类型, 比如: US7ASCII, date格式的类型就是: '01-Jan-01'alter system set NLS_DATE_LANGUAGE = Americanalter session set NLS_DATE_LANGUAGE = American或者在to_date中写select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;注意我这只是举了NLS_DATE_LANGUAGE,当然还有很多,可查看select * from nls_session_parametersselect * from V$NLS_PARAMETERS8.select count(*)from ( select rownum-1 rnumfrom all_objectswhere rownum <= to_date('2002-02-28','yyyy-mm-dd') - to_date('2002-02-01','yyyy-mm-dd')+1)where to_char( to_date('2002-02-01','yyyy-mm-dd')+rnum-1, 'D' )not in ( '1', '7' )查找2002-02-28至2002-02-01间除星期一和七的天数在前后分别调用DBMS_UTILITY.GET_TIME, 让后将结果相减(得到的是1/100秒, 而不是毫秒).9. 查找月份select months_between(to_date('01-31-1999','MM-DD-YYYY'),to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;1select months_between(to_date('02-01-1999','MM-DD-YYYY'),to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;1.0322580645161310. Next_day的用法Next_day(date, day)Monday-Sunday, for format code DAYMon-Sun, for format code DY1-7, for format code D11select to_char(sysdate,'hh:mi:ss') TIME from all_objects注意:第一条记录的TIME 与最后一行是一样的可以建立一个函数来处理这个问题create or replace function sys_date return date isbeginreturn sysdate;end;select to_char(sys_date,'hh:mi:ss') from all_objects;12.获得小时数extract()找出日期或间隔值的字段值SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 2:38:40') from offerSQL> select sysdate ,to_char(sysdate,'hh') from dual;SYSDATE TO_CHAR(SYSDATE,'HH')-------------------- ---------------------2003-10-13 19:35:21 07SQL> select sysdate ,to_char(sysdate,'hh24') from dual;SYSDATE TO_CHAR(SYSDATE,'HH24')-------------------- -----------------------2003-10-13 19:35:21 1913.年月日的处理select older_date,newer_date,years,months,abs(trunc(newer_date-add_months( older_date,years*12+months ))) daysfrom ( selecttrunc(months_between( newer_date, older_date )/12) YEARS,mod(trunc(months_between( newer_date, older_date )),12 ) MONTHS,newer_date,older_datefrom (select hiredate older_date, add_months(hiredate,rownum)+rownum newer_datefrom emp))14.处理月份天数不定的办法select to_char(add_months(last_day(sysdate) +1, -2), 'yyyymmdd'),last_day(sysdate) from dual16.找出今年的天数select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual闰年的处理方法to_char( last_day( to_date('02'    | | :year,'mmyyyy') ), 'dd' )如果是28就不是闰年17.yyyy与rrrr的区别'YYYY99 TO_C------- ----yyyy 99 0099rrrr 99 1999yyyy 01 0001rrrr 01 200118.不同时区的处理select to_char( NEW_TIME( sysdate, 'GMT','EST'), 'dd/mm/yyyy hh:mi:ss') ,sysdatefrom dual;19.5秒钟一个间隔Select TO_DATE(FLOOR(TO_CHAR(sysdate,'SSSSS')/300) * 300,'SSSSS') ,TO_CHAR(sysdate,'SSSSS')from dual2002-11-1 9:55:00 35786SSSSS表示5位秒数20.一年的第几天select TO_CHAR(SYSDATE,'DDD'),sysdate from dual310 2002-11-6 10:03:5121.计算小时,分,秒,毫秒selectDays,A,TRUNC(A*24) Hours,TRUNC(A*24*60 - 60*TRUNC(A*24)) Minutes,TRUNC(A*24*60*60 - 60*TRUNC(A*24*60)) Seconds,TRUNC(A*24*60*60*100 - 100*TRUNC(A*24*60*60)) mSecondsfrom(selecttrunc(sysdate) Days,sysdate - trunc(sysdate) Afrom dual)select * from tabnameorder by decode(mode,'FIFO',1,-1)*to_char(rq,'yyyymmddhh24miss');//floor((date2-date1) /365) 作为年floor((date2-date1, 365) /30) 作为月d(mod(date2-date1, 365), 30)作为日.23.next_day函数      返回下个星期的日期,day为1-7或星期日-星期六,1表示星期日next_day(sysdate,6)是从当前开始下一个星期五。后面的数字是从星期日开始算起。1 2 3 4 5 6 7日 一 二 三 四 五 六---------------------------------------------------------------select    (sysdate-to_date('2003-12-03 12:55:45','yyyy-mm-dd hh24:mi:ss'))*24*60*60 from ddual日期 返回的是天 然后 转换为ss24,round[舍入到最接近的日期](day:舍入到最接近的星期日)select sysdate S1,round(sysdate) S2 ,round(sysdate,'year') YEAR,round(sysdate,'month') MONTH ,round(sysdate,'day') DAY from dual25,trunc[截断到最接近的日期,单位为天] ,返回的是日期类型select sysdate S1,trunc(sysdate) S2,                 //返回当前日期,无时分秒trunc(sysdate,'year') YEAR,        //返回当前年的1月1日,无时分秒trunc(sysdate,'month') MONTH ,     //返回当前月的1日,无时分秒trunc(sysdate,'day') DAY           //返回当前星期的星期天,无时分秒from dual26,返回日期列表中最晚日期select greatest('01-1月-04','04-1月-04','10-2月-04') from dual27.计算时间差注:oracle时间差是以天数为单位,所以换算成年月,日select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))/365) as spanYears from dual        //时间差-年select ceil(moths_between(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))) as spanMonths from dual        //时间差-月select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))) as spanDays from dual             //时间差-天select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24) as spanHours from dual         //时间差-时select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24*60) as spanMinutes from dual    //时间差-分select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24*60*60) as spanSeconds from dual //时间差-秒28.更新时间注:oracle时间加减是以天数为单位,设改变量为n,所以换算成年月,日select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate+n*365,'yyyy-mm-dd hh24:mi:ss') as newTime from dual        //改变时间-年select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),add_months(sysdate,n) as newTime from dual                                 //改变时间-月select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate+n,'yyyy-mm-dd hh24:mi:ss') as newTime from dual            //改变时间-日select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate+n/24,'yyyy-mm-dd hh24:mi:ss') as newTime from dual         //改变时间-时select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate+n/24/60,'yyyy-mm-dd hh24:mi:ss') as newTime from dual      //改变时间-分select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate+n/24/60/60,'yyyy-mm-dd hh24:mi:ss') as newTime from dual   //改变时间-秒29.查找月的第一天,最后一天SELECT Trunc(Trunc(SYSDATE, 'MONTH') - 1, 'MONTH') First_Day_Last_Month,Trunc(SYSDATE, 'MONTH') - 1 / 86400 Last_Day_Last_Month,Trunc(SYSDATE, 'MONTH') First_Day_Cur_Month,LAST_DAY(Trunc(SYSDATE, 'MONTH')) + 1 - 1 / 86400 Last_Day_Cur_MonthFROM dual;

    展开全文
  • Oracle中to_number()函数的用法 to_number()函数是oracle中常用的类型转换函数之一,是将一些处理过的按一定格式编排过的字符串变回数值型的格式。 1、to_number()函数可以将char或varchar2类型的string转换为一...

    Oracle中to_number()函数的用法

    to_number()函数是oracle中常用的类型转换函数之一,是将一些处理过的按一定格式编排过的字符串变回数值型的格式。
    

    1、to_number()函数可以将char或varchar2类型的string转换为一个number类型的数值;
    2、需要注意的是,被转换的字符串必须符合数值类型格式,如果被转换的字符串不符合数值型格式,Oracle将抛出错误提示;
    3、to_number和to_char恰好是两个相反的函数;

    eg:
    (1)to_number(varchar2 or char,‘格式’)

    select to_number(‘000012134’) from dual;
    select to_number(‘88877’) from dual;

    (2)如果数字在格式范围内的话,就是正确的,否则就是错误的;如:

    select to_number(’$12345.678’, ‘$999999.99’) from dual;
    select to_number(’$12345.678’, ‘$999999.999’) from dual;

    (3)可以用来实现进制转换;16进制转换为10进制:

    select to_number(‘19f’,‘xxx’) from dual;
    select to_number(‘f’,‘xx’) from dual;

    展开全文
  • 1、to_number()函数的使用: select to_number('000012134') from dual; --输出结果为:12134 select to_number('88877') from dual; --输出结果为:88877 2、to_number()函数的语法: --to_number('要被转换的字段...

    Oracle将字符串转换为数字

    将char或者varchar2类型的String转换为数值类型的格式,需要注意的是,被转换的字符串必须符合数值类型格式,否则报错。

    1、to_number()函数的使用:

    select to_number('000012134') from dual;
    --输出结果为:12134
    select to_number('88877') from dual;
    --输出结果为:88877
    

    2、to_number()函数的语法:

    --to_number('要被转换的字段')  from tableName;
    select to_number(s.CASETQUALITY) from temp_table_cs s
    
    展开全文
  • 一、Oracle中的to_date()函数 1、to_date()与24小时制表示法及mm分钟的显示: 在使用Oracle的to_date函数来做日期转换时,很多Java程序员也许会直接的采用“yyyy-MM-dd HH:mm:ss”的格式作为格式进行转换,但是在...

    一、Oracle中的to_date()函数
    1、to_date()与24小时制表示法及mm分钟的显示:
    在使用Oracle的to_date函数来做日期转换时,很多Java程序员也许会直接的采用“yyyy-MM-dd HH:mm:ss”的格式作为格式进行转换,但是在Oracle中会引起错误:“ORA 01810 格式代码出现两次”。
    如:select to_date(‘2005-01-01 13:14:20’,’yyyy-MM-dd HH24:mm:ss’) from dual;
    原因是SQL中不区分大小写,MM和mm被认为是相同的格式代码,所以Oracle的SQL采用了mi代替分钟。
    select to_date(‘2005-01-01 13:14:20’,’yyyy-MM-dd HH24:mi:ss’) from dual;

    2、另要以24小时的形式显示出来要用HH24
    select to_char(sysdate,’yyyy-MM-dd HH24:mi:ss’) from dual;//mi是分钟
    select to_char(sysdate,’yyyy-MM-dd HH24:mm:ss’) from dual;//mm会显示月份

    3、实例
    日期转换,获取系统当前时间
    (1)在Java中的语句:
    select to_char(sysdate,’yyyy-MM-dd HH24:mm:ss’)from dual;
    输出:2018-05-17 10:05:02
    而系统真正的当前时间是2018-05-17 10:54:21,年月日倒是对的,从分钟上出现了偏差。

    (2)但是在oracle数据库中,这个mm是取不到当前的分钟数的:
    select to_char(sysdate,’yyyy-MM-dd HH24:mi:ss’)from dual; 采用24小时制
    输出:2018-05-17 10:54:21
    这行仅仅只有一个字母区别的代码,出来的数据有如下的巨大区别。由于这个错误显示的结果极难发现,因为从数据上,几乎看不错差异,但是如果关系到账务的项目,这是一个致命的错误。
    原因是SQL中不区分大小写,MM和mm被认为是相同的格式代码,所以Oracle的SQL采用了mi代替分钟。而正因为mm不区分大小写,所以mm会显示月份,显示05,mi显示分钟,显示54。

    (3)select to_char(sysdate,’yyyy-MM-dd HH:mi:ss’)from dual; 采用12小时制
    2018-05-17 10:54:21

    (4)select to_date(‘2018-05-17 10:54:21’,’yyyy-MM-dd HH24:mi:ss’) from dual;
    17-5月 -18

    (5)select to_char(sysdate,’Day, HH12:MI:SS’) from dual;
    星期四, 11:11:26

    select to_char(sysdate,’Day, yyyy-MM-dd HH:mi:ss’) from dual;
    星期四, 2018-05-17 11:12:26

    select to_char(sysdate,’yyyy-MM-dd Day HH:mi:ss’) from dual;
    2018-05-17 星期四 11:13:20

    4、oracle中的to_date参数含义
    (1)日期格式参数含义说明
    D 一周中的星期几
    DAY 天的名字,使用空格填充到9个字符
    DD 月中的第几天
    DDD 年中的第几天
    DY 天的简写名
    IW ISO标准的年中的第几周
    IYYY ISO标准的四位年份
    YYYY 四位年份
    YYY,YY,Y 年份的最后三位,两位,一位
    HH 小时,按12小时计
    HH24 小时,按24小时计
    MI 分
    SS 秒
    MM 月
    Mon 月份的简写
    Month 月份的全名
    W 该月的第几个星期
    WW 年中的第几个星期

    (2)日期时间间隔操作
    当前时间减去7分钟的时间
    select sysdate,sysdate - interval ’7’ MINUTE from dual
    当前时间减去7小时的时间
    select sysdate - interval ’7’ hour from dual
    当前时间减去7天的时间
    select sysdate - interval ’7’ day from dual
    当前时间减去7月的时间
    select sysdate,sysdate - interval ’7’ month from dual
    当前时间减去7年的时间
    select sysdate,sysdate - interval ’7’ year from dual
    时间间隔乘以一个数字
    select sysdate,sysdate - 8 *interval ’2’ hour from dual

    (3)日期到字符操作
    select sysdate,to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual
    select sysdate,to_char(sysdate,’yyyy-mm-dd hh:mi:ss’) from dual
    select sysdate,to_char(sysdate,’yyyy-ddd hh:mi:ss’) from dual
    select sysdate,to_char(sysdate,’yyyy-mm iw-d hh:mi:ss’) from dual
    参考oracle的相关关文档(ORACLE901DOC/SERVER.901/A90125/SQL_ELEMENTS4.HTM#48515)

    (4)字符到日期操作
    select to_date(’2003-10-17 21:15:37’,’yyyy-mm-dd hh24:mi:ss’) from dual
    具体用法和上面的to_char差不多。

    (5)trunk/ ROUND函数的使用
    select trunc(sysdate ,’YEAR’) from dual
    select trunc(sysdate ) from dual
    select to_char(trunc(sysdate ,’YYYY’),’YYYY’) from dual

    (6)oracle有毫秒级的数据类型
    –返回当前时间 年月日小时分秒毫秒
    select to_char(current_timestamp(5),’DD-MON-YYYY HH24:MI:SSxFF’) from dual;
    –返回当前时间的秒毫秒,可以指定秒后面的精度(最大=9)
    select to_char(current_timestamp(9),’MI:SSxFF’) from dual;
    参考:https://www.cnblogs.com/fmxyw/archive/2008/08/26/1276850.html

    二、Oracle中的to_char()函数
    (1)用作日期转换:
    to_char(date,’格式’);
    select to_date(‘2005-01-01 ‘,’yyyy-MM-dd’) from dual;
    select to_char(sysdate,’yyyy-MM-dd HH24:mi:ss’) from dual;

    (2)处理数字:
    to_char(number,’格式’);
    select to_char(88877) from dual;
    select to_char(1234567890,’099999999999999’) from dual;
    select to_char(12345678,’999,999,999,999’) from dual;
    select to_char(123456,’99.999’) from dual;
    select to_char(1234567890,’999,999,999,999.9999’) from dual;

    (3)to_char(salary,’99,99);selectTOCHAR(123,99,999.9’) from dual;

    (4)用于进制转换:将10进制转换为16进制;
    select to_char(4567,’xxxx’) from dual;
    select to_char(123,’xxx’) from dual;

    例子:
    to_char() 例子
    输入 输出
    to_char(-0.1,’99.99’) ’ -.10’
    to_char(-0.1,’FM9.99’) ‘-.1’
    to_char(0.1,’0.9’) ’ 0.1’
    to_char(12,’9990999.9’) ’ 0012.0’
    to_char(12,’FM9990999.9’) ‘0012’
    to_char(485,’999’) ’ 485’
    to_char(-485,’999’) ‘-485’
    to_char(485,’9 9 9’) ’ 4 8 5’
    to_char(1485,’9,999’) ’ 1,485’
    to_char(1485,’9G999’) ’ 1 485’
    to_char(148.5,’999.999’) ’ 148.500’
    to_char(148.5,’999D999’) ’ 148,500’
    to_char(3148.5,’9G999D999’) ’ 3 148,500’
    to_char(-485,’999S’) ‘485-’
    to_char(-485,’999MI’) ‘485-’
    to_char(485,’999MI’) ‘485’
    to_char(485,’PL999’) ‘+485’
    to_char(485,’SG999’) ‘+485’
    to_char(-485,’SG999’) ‘-485’
    to_char(-485,’9SG99’) ‘4-85’
    to_char(-485,’999PR’) ‘<485>’
    to_char(485,’L999’) ‘DM 485
    to_char(485,’RN’) ’ CDLXXXV’
    to_char(485,’FMRN’) ‘CDLXXXV’
    to_char(5.2,’FMRN’) V
    to_char(482,’999th’) ’ 482nd’
    to_char(485, ‘“Good number:”999’) ‘Good number: 485’
    to_char(485.8,‘“Pre-decimal:”999” Post-decimal:” .999’) ‘Pre-decimal: 485 Post-decimal: .800’
    to_char(12,’99V999’) ’ 12000’
    to_char(12.4,’99V999’) ’ 12400’
    to_char(12.45, ‘99V9’) ’ 125’
    参考:https://www.cnblogs.com/herizai/p/7059124.html

    三、Oracle中的to_number()函数
    (1)将char或varchar2类型的string转换为一个number类型的数值:
    需要注意的是,被转换的字符串必须符合数值类型格式,如果被转换的字符串不符合数值型格式,Oracle将抛出错误提示;

    (2)to_number和to_char恰好是两个相反的函数;
    to_number(varchar2 or char,’格式’)
    select to_number(‘000012134’) from dual;
    select to_number(‘88877’) from dual;

    (3)如果数字在格式范围内的话,就是正确的,否则就是错误的;如:
    select to_number(‘12345.678,999999.99’) from dual;
    select to_number(‘12345.678,999999.999’) from dual;

    (4)可以用来实现进制转换;16进制转换为10进制:
    select to_number(‘19f’,’xxx’) from dual;
    select to_number(‘f’,’xx’) from dual;
    参考:https://blog.csdn.net/jiangnan2014/article/details/16921985

    展开全文
  • oracle --> mysqlto_char(sysdate,'yyyy-mm-dd')-->date_format(sysdate(),'%Y-%m-%d');to_date(sysdate,'yyyy-mm-dd')--...STR_TO_DATE(sysdate(),'%Y-%m-%d');1.oracle(1)使用TO_CHAR函数处理数字TO_CHAR(nu...
  • Oracle中to_number()函数的学习

    千次阅读 2016-04-20 15:55:25
    Oracle中to_number()函数的学习 TO_NUMBER用法 将一个字符串转成数值
  • Oracle中TO_NUMBER()函数的用法

    千次阅读 2018-10-11 16:44:23
    1 用法简介 TO_NUMBER函数()是Oracle中常用的类型转换函数之一,主要是将...To_number(varchar2 or char,’format model’) 1 To_number函数中也有很多预定义的固定格式: 格式值 含义 9 代表一个数字 0 强迫0...
  • TO_CHAR():CAST(123 AS CHAR(3))TO_NUMBER():cast( '123 ' as SIGNED INTEGER) 转载于:https://www.cnblogs.com/remember-forget/p/8295208.html
  • 1 用法简介TO_NUMBER函数()是Oracle中常用的类型转换函数之一,...To_number(varchar2 or char,’format model’)1To_number函数中也有很多预定义的固定格式: 格式值 含义9 代表一个数字0 强迫0显示$ 显示美元符...
  • TO_CHAR 是把日期或数字转换为字符串TO_DATE 是把字符串转换为数据库中得日期类型转换函数TO_NUMBER 将字符转化为数字 TO_CHAR 使用TO_CHAR函数处理数字 TO_CHAR(number, '格式') TO_CHAR(salary,’$99,999.99’);...
  • HQL 中使用to_number() 函数的问题

    千次阅读 2014-12-05 19:48:58
    Hibernate HQL查询语法貌似不支持直接使用某些函数,其中就包括to_...max(to_number(o.ordernum)) from className o  上述这种用法会报错,HQL无法正常解析为SQL。可以采用下面的HQL:
  • 目录 Oralce中To_data(),To_char(),To_number()的用法①.To_data() 函数对日期的转换②.To_char() 函数对数字的转换③.To_number() 函数将字符转换为数字 Oralce中To_data(),To_char(),To_number()的用法 TO_CHAR 是...
  • to_number()函数的用法

    2018-04-28 08:51:00
    https://blog.csdn.net/dongdong9223/article/details/48972815 转载于:https://www.cnblogs.com/feifeicui/p/8965805.html
  • Oracle转数字,函数to_number()

    千次阅读 2019-06-18 18:44:33
    to_number()函数是oracle中常用的类型转换函数之一,是将一些处理过的按一定格式编排过的字符串变回数值型的格式。 1、to_number()函数可以将char或varchar2类型的string转换为一个number类型的数值; 2、需要注意...
  • 数字函数 字符函数 时间函数 日期转换成字符TO_CHAR() 字符转换成日期TO_DATE() 数字转换成字符 字符转换成数字TO_NUMBER()
  • to_number用法示例 Number()函数 (Number() function) Number() function is a predefined global function in JavaScript, it used to convert an object to the number. If the function is not able to convert ...
  • 在Oracle中会用到**percentile_cont**(比例) **WITHIN GROUP**( **ORDER BY** to_number(分数) )写法,但在MySQL中却没有**percentile_cont**函数用法,所以只能根据函数思想使用**LIMIT**改编算法(亲测,基本无误差...
  • 1、RATIO_TO_REPORT()为比例函数 2、创建测试表,并插入数据 CREATE TABLE TEST_V( DEPTNO VARCHAR2(10), NAME VARCHAR2(10), SAL NUMBER ); 3、实例1:要求计算各部门工资合计,以及该工资合计占总工资的...
  • to_numaber()

    2019-09-26 23:56:30
    to_number()函数也是oracle中常用的类型转换函数之一,是将一些处理过的按一定格式编排过的字符串变回数值型的格式。 2函数用法 to_number(char [,fmt [,nlsparam] ]) 该函数是将一个字符串所包含的数据转化为...
  • to_number()函数对非数字操作会抛出异常。之前用没有任何问题。只是操作过数据导入。然后再使用就报错。查看数据库发现数据中多了中文字符。同事刘工给出的解决方案是使用多个函数 selectto_number(nvl2(translate(a...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,256
精华内容 902
关键字:

to_number()函数