Oracle截取函数
.
分类: oracle2010-03-24 16:5493人阅读评论(0)收藏举报
1.TRUNC(for dates) 和 TO_CHAR() 函数
注:
为月(mm)时,精确到------年,月(不管哪年,只要是相同的月和哪天)
为日(dd)时,精确到------年,月,日(不管哪年的哪月,只关心是哪天)
SELECT DISTINCT TRUNC (u.start_date, 'DD') - TO_CHAR (u.start_date, 'D') + 6 a2t from user_product u to_char(sysdate, 'yyyy/mm/dd'); would return '2003/07/09' to_char(sysdate, 'Month DD, YYYY'); would return 'July 09, 2003' to_char(sysdate, 'FMMonth DD, YYYY'); would return 'July 9, 2003' to_char(sysdate, 'MON DDth, YYYY'); would return 'JUL 09TH, 2003' to_char(sysdate, 'FMMON DDth, YYYY'); would return 'JUL 9TH, 2003' to_char(sysdate, 'FMMon ddth, YYYY'); would return 'Jul 9th, 2003' -- 截取到年份,然后再加上6年 SELECT DISTINCT TO_CHAR (u.start_date, 'yyyy') + 6 a2t from user_product u -- 截取到月份 SELECT DISTINCT TO_CHAR (u.start_date, 'mm') a2t -- 截取到日 from user_product u SELECT DISTINCT TO_CHAR (u.start_date, 'dd') a2t -- 截取到日 from user_product u SELECT DISTINCT TO_CHAR (u.start_date, 'd') a2t from user_product u SELECT DISTINCT TO_CHAR (u.start_date, 'yyyy-mm-dd') a2t from user_product u -- 截取到年份 SELECT DISTINCT TRUNC (u.start_date, 'yyyy') a2t from user_product u SELECT DISTINCT TRUNC (sysdate, 'yyyy') a2t from user_product u -- 截取到月份 SELECT DISTINCT TRUNC (u.start_date, 'mm') a2t from user_product u SELECT DISTINCT TRUNC (sysdate, 'mm') a2t from user_product u SELECT DISTINCT TRUNC (to_date('2010-02-28', 'yyyy-mm-dd'), 'mm') a2t from user_product u -- 截取到日 SELECT DISTINCT TRUNC (u.start_date, 'dd') a2t from user_product u SELECT DISTINCT TRUNC (sysdate, 'dd') a2t from user_product u -- 截取到所给日期的最近一个周日的时间(当前日期向前推) SELECT DISTINCT TRUNC (sysdate, 'd') a2t from user_product u SELECT DISTINCT TRUNC (to_date('2010-03-06', 'yyyy-mm-dd'), 'd') a2t from user_product u 2.TRUNC(for number) TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理, 而统统截去。 其具体的语法格式如下 TRUNC(number[,decimals]) 其中: number 待做截取处理的数值 decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分 下面是该函数的使用情况: TRUNC(89.985,2)=89.98 TRUNC(89.985)=89 TRUNC(89.985,-1)=80 注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。