Oracle中各种字段类型处理(日期加减、数字、字符串)

1、 日期(加减、格式转换)

1)日期类型的加减

    天数可以直接加减(可以引申到时分秒的加减);

 月(引申到年)的加减可以用函数add_months();

 

2)日期之间的加减

    两个日期相减,返回的单位为天,小时及分秒会换算成小数;

     两个日期相减,返回的单位为月;

 

 3)日期字符串互相转换

     转为日期,可以用date'YYYY-MM-DD'或者to_date(日期或字符串日期,格式),格式:'yyyy-MM-dd'、'yyyy-MM-dd hh24:mi:ss'

 

     转为字符串,可以用to_char(日期或字符串日期,格式),格式:'yyyyMMdd'、'yyyy-MM-dd'、'yyyy-MM-dd hh24:mi:ss'

 

 

  4)查询日期具体情况

 

 5)其他格式

    trunc(DATEVALUE):DATEVALUE为date类型,获取该日期的年月日;

    extract(DATA FROM DATEVALUE):获取日期的一部分值;

        如果DATEVALUE为DATE类型,则DATA可以是(YEAR、MONTH、DAY)

        如果DATEVALUE为TIMESTAMP类型,则DATA可以是(YEAR、MONTH,DAY、HOUR、MINUTE、SECOND)

    LAST_DAY(DATE):返回日期所在月份的最后一天日期

  

2、 数字类型处理

1)round(四舍五入)

    round函数就是返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果 。

    语法是:round(number,num_digits),即:round(数值,保留的小数位数)

   

 

 2)trunc(非四舍五入,按位截取)

    语法是:trunc(number,num_digits),即:trunc(数值,保留的小数位数)

    

 

3)floor(非四舍五入取整)

    语法是:floor(number),即:floor(数值)

   

 

4)ceil(四舍五入取整)

    语法是:ceil(number),即:ceil(数值)

    

 

  5)ABS(用于返回数字的绝对值)

    语法是:ABS(number),即:ABS(数值)

    

 

 5)数字格式化(数字转字符串)

    语法是:to_char(number)。

    备注:

           用to_char(number)直接转,如果number是小于1的数字时候会存在小数点前面的0不会展示(例1.1),可以用to_char(number,'FM90D999')

         【FM90D999】是指转化格式,其中【FM】是删除9带来的空格(例1.2),【D】是小数点(例1.3);

          其中在【D】前后的【9】和【0】是指转化数字的位数(可以同时存在,各自满足,也可以互补满足);

        【D】前的不满足位数会返回”#“(例2),

         满足位数会返回正常,区别是【0】超过正常位数后不管是【D】前后都会补0(例3.1),【9】不会做处理(例3.2)

         

 

3、 字符串类型处理

1)判断字符串的长度

   语法是:length(varchar)。

   length函数就是返回一个数值,该数值是指字符串的长度。

 

2)替换字符串中某个字符

    2.1)REPLACE:与REPLACE的功能相似

   语法是:replace(字符 ,'字符' , ‘替换的字符’)。replace函数就是返回一个字符。

 

     2.2)REGEXP_REPLACE:与REPLACE的功能相似

 

3)判断某个字符在字符串中出现的次数

    语法是:LENGTH(字段) - LENGTH(REPLACE(字段, '字符' ,''))。返回的是一个数字

 

4)截取字符串

    4.1)SUBSTR

    语法是:SUBSTR(字段 , number1,number2)。number1(数字)字符串开始的位置;number2(数字)截取的长度,从number1开始到算。

                  SUBSTR(字段 , number1)。number1(数字)字符串开始的位置;到结束。

 

    4.2)REGEXP_SUBSTR:与SUBSTR的功能相似

    语法是:REGEXP_SUBSTR(String,pattern,position,occurrence ,modifier )

                  String:操作的字符串;

                  pattern:正则表达式匹配规则,匹配到则返回;

                  position:开始匹配的位置,默认当然是1;

                  occurrence:标识第几个匹配组,默认为1;

                  modifier:模式(‘i‘不区分大小写进行检索,‘c‘区分大小写进行检索。默认为‘c‘)

                           

                  可以实现字符串字段列转行,如下:

                  

 

  

5)判断某个字符是否存在另一个字符中

    5.1)INSTR:

    语法是:INSTR(string1, string2) ,instr(源字符串, 目标字符串),返回 > 0 的数字代表存在。

                  INSTR(string1, string2, start, nth_appearance ) ,instr(源字符串, 目标字符串, 起始位置, 第几次出现)

    5.2)REGEXP_INSTR:与INSTR的功能相似

 

      

 

 

 

 

 

 

posted @ 2022-01-20 19:10  Faith_zhang  阅读(7608)  评论(1编辑  收藏  举报