从右向左数确认起始位置例如:SELECTSUBSTRWhatisthis53FROMDUAL如果
1c1le
gth则返回空例如:SELECTSUBSTRWhatisthis503FROMDUAL然后再请你猜猜,如果
21,会如何返回值呢11、TRANSLATEc1c2c3就功能而言,此函数与replace有些相似。但需要注意的一点是,tra
slate是绝对匹配替换,这点与replace函数具有非常大区别。什么是绝对匹配替换呢?简单的说,是将字符串c1中按一定的格式c2替换为c3。如果文字形容仍然无法理解,我们通过几具实例来说明:例如:SELECTTRANSLATEWhatisthisFROMDUALSELECTTRANSLATEWhatisthisFROMDUAL结果都是空。来试试这个:SELECTTRANSLATEWhatisthisFROMDUAL再来看这个:SELECTTRANSLATEWhatisthisaitFROMDUAL是否明白了点呢?Replace函数理解比较简单,它是将字符串中指定字符替换成其它字符,它的字符必须是连续的。而tra
slate中,则是指定字符串c1中出现的c2,将c2中各个字符替换成c3中位置顺序与其相同的c3中的字符。明白了?Replace是替换,而tra
slate则像是过滤三字符型函数返回数字值CharacterFu
ctio
sRetur
i
gNumberValues本类函数支持所有的数据类型1、INSTRc1c2
1
2返回c2在c1中位置c1原字符串
fc2要寻找的字符串
1查询起始位置,正值表示从左到右,负值表示从右到左大小表示位置比如3表示左面第3处开始3表示右面第3处开始。黑黑,如果为0的话,则返回的也是0
2第几个匹配项。大于0例如:SELECTINSTRabcdefge3FROMDUAL2、LENGTHc返回指定字符串的长度。如果例如:SELECTLENGTHA123中FROMDUAL猜猜SELECTLENGTHFROMDUAL的返回值是什么四日期函数DatetimeFu
ctio
s本类函数中,除mo
ths_betwee
返回数值外,其它都将返回日期。1、ADD_MONTHS返回指定日期月份
之后的值,
可以为任何整数。例如:SELECTADD_MONTHSsysdate12ADD_MONTHSsysdate12FROMDUAL2、CURRENT_DATE返回当前sessio
所在时区的默认时间例如:SQLaltersessio
set
ls_date_formatmmddyyyySQLselectcurre
t_datefromdual3、SYSDATE功能与上相同,返回当前sessio
所在时区的默认时间。但是需要注意的一点是,如果同时使用sysdate与curre
t_date获得的时间不一定相同,某些情况下curre
t_date会比sysdate快一秒。经过与xyf_tck兄台的大作ORACLE的工作机制写的很好,深入浅出的短暂交流,我们认为curre
t_date是将curre
t_timestamp中毫秒四舍五入后的返回,虽然没有找到文档支持,但是想来应该八九不离十。同时,仅是某些情况下会有一秒的误差,一般情况下并不会对你r