Oracle截取函数

来源:互联网 发布:舒尔特表软件下载 编辑:程序博客网 时间:2024/06/05 22:35

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记。