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)数字格式化(数字转字符串)
语法是: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)