oralce中to_char默认转换格式的理解
select concat('4', to_char(02, '09')) from dual;结果为4 02
因为9是占位如果左边起是o会自动隐藏,0是强制显示如果左右是0一样显示,非0也显示,因为数值分正负,正好‘+’会自动隐藏,负号‘-’则不会隐藏,这就是上面为什么有个空格的原因。
select concat('4', to_char(02, 'FM09')) from dual;结果为402
可以看出FM的作用就是清空前面的空格。
由此可以推算出to_char转换数值的默认格式是,先判断数值的有效长度(指的是左边不为0开始),然后格式填充相应的9,正号隐藏,负号保存。最后FM将空格清空。
对上面隐藏的理解:隐藏就是看不到,用空格代表,当格式位数大于数值的位数,格式为‘9’的就用空格表示,格式为‘0’的就用0表示。
简单理解:格式的位数不能小于数值的位数(这里的位数是只左边不为0开始的位数),否则结果为###,就是错的。
格式的位数与数值位数(上同)相等的时候,是什么就显示什么。
格式的位数大于数值的位数(上同)的时候,超过的部分格式为0的时候,强制填充0,格式为9的时候我们就用空格填充。
1.这里只记录一些学习笔记
2.这里只记录一些学习心得,如果心得方向有错,请留言
2.这里只记录一些日记(只为提升英语,暂时有点忙,等转行了开始写)