oracle 中提供的函数 中提供的
一:substr 函数
In oracle/PLSQL, the substr functions allows you to extract a substring from a string. The syntax for the substr function is: substr( string, start_position, [ length ] ) 说明: string is the source string. start_position is the position for extraction. The first position in the string is always 1. length is optional. It is the number of characters to extract. If this parameter is omitted, substr will return the entire string. For example: substr('This is a test', 6, 2) would return 'is' substr('This is a test', 6) would return 'is a test' substr('TechOnTheNet', 1, 4) would return 'Tech' substr('TechOnTheNet', -3, 3) would return 'Net' substr('TechOnTheNet', -6, 3) would return 'The' substr('TechOnTheNet', -8, 2) would return 'On'
二:instr 函数
在oracle中提供了instr函数,这个函数它是用来查询指定字符在字符串中的位置。 instr(column|expression,'string',[m],[n])
第一部分是指定的字符串或者是表达式. 第二部分是指定的字符。 第三部分是从什么位置开始查询。 第四部是这个字符出现的位置。比如说:第一次出现的位置,第二次出现的位置。 例子: 从字符串(yanggang)中搜索g字符,从第一个字母开始搜索它第一次出现的位置。 SQL> select instr('yanggang','g',1,1) from dual; INSTR('YANGGANG','G',1,1) ------------------------4 从字符串(yanggang)中搜索g字符,从第一个字母开始搜索它第二次出现的位置。 SQL> select instr('yanggang','g',1,2) from dual; INSTR('YANGGANG','G',1,2) ------------------------5 从字符串(yanggang)中搜索g字符,从最后一个字母开始搜索它第一次出现的位置。 SQL> select instr('yanggang','g',-1,1) from dual; INSTR('YANGGANG','G',-1,1) -------------------------8 在默认情况下: SQL> select instr('yanggang','g') from dual; INSTR('YANGGANG','G') --------------------4 最后两个参数是默认的是1和1. 和以上的表示一样。
SQL> select instr('yanggang','g',1,1) from dual; INSTR('YANGGANG','G',1,1) ------------------------4
三:TRUNC 函数
关于TRUNC函数的format,自己现在有点体会,format为day时,只精确到天,而不管几年几月 只要是符合的day就可以了,要想确定一年中的某月的某一天就要用trunc(date,'dd'). 通俗的说吧,format为年时,精确到-----年 为月时,精确到------年,月(不管哪年,只要是相同的月和哪 天) 为日时,精确到------年,月,日(不管哪年的哪月,只关心 是哪天) -----------------郁闷.今天才真正明白了. 1.TRUNC(for dates) TRUNC函数为指定元素而截去的日期值。 其具体的语法格式如下: TRUNC(date[,fmt]) 其中: date fmt 由最近的日期截去 下面是该函数的使用情况: TRUNC(TO_DATE(’24-Nov-1999 08:00 pm’,’dd-mon-yyyy hh:mi am’)) =’24-Nov-1999 12:00:00 am’ TRUNC(TO_DATE(’24-Nov-1999 08:37 pm’,’dd-mon-yyyy hh:mi am’,’hh’)) round =’24-Nov-1999 08:00:00 am’ 一个日期值 日期格式,该日期将由指定的元素格式所截去。忽略它则
(date,'format')未指定format时,如果日期中的时间在中午之前,则将日期 A.M.(午夜,一天的开始),否则进到第二天。 A.M.,不考虑是否在中午之
中的时间截断为12
TRUNC(date,'format')未指定format时,将日期截为12 前