1.TRUNC(for dates)
TRUNC函数为指定元素而截去的日期值。
其具体的语法格式如下:
TRUNC(date[,fmt])
其中:
date 一个日期值
fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去
下面是该函数的使用情况:
TRUNC(TO_DATE(’24-Nov-1999 08:00 pm’,’dd-mon-yyyy hh:mi am’))
=’24-Nov-1999 12:00:00 am’
TRUNC(TO_DATE(’24-Nov-1999 08:37 pm’,’dd-mon-yyyy hh:mi am’,’hh’)) =’24-Nov-1999 08:00:00 am’
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记。
trunc日期的使用方法
trunc函数格式:trunc(date,[format])
trunc函数返回一个date(日期),不能够用trunc得到日期的一部分,比如年,月,日等。
format参数省略的话,该函数返回date表示的日期(不带时间)。
format的取值
Unit | Valid format parameters 有效参数 |
---|---|
Year | SYYYY, YYYY, YEAR(返回twenty ten), SYEAR, YYY, YY, Y |
ISO Year | IYYY, IY, I |
Quarter(一刻钟) | Q |
Month | MONTH(返回 eg:5月), MON, MM, RM |
Week | WW(回放周数) |
IW | IW |
W | W |
Day | DDD, DD, J |
Start day of the week(返回星期) | DAY, DY, D |
Hour | HH, HH12, HH24 |
Minute | MI |
求某天是星期几
select to_char(to_date(‘2002-08-26‘,‘yyyy-mm-dd‘),‘day‘) from dual;
星期一
select to_char(to_date(‘2002-08-26‘,‘yyyy-mm-dd‘),‘day‘,‘NLS_DATE_LANGUAGE = American‘) from dual;
monday 设置日期语言 ALTER SESSION SET NLS_DATE_LANGUAGE=‘AMERICAN‘;
也可以这样 TO_DATE (‘2002-08-26‘, ‘YYYY-mm-dd‘, ‘NLS_DATE_LANGUAGE = American‘)
trunc( newer_date- add_months( older_date,years*12+months ) )select trunc(sysdate) Days,
sysdate - trunc(sysdate) A from dual )