1. TRUNC(x[,y])
功能: 计算截尾到y位小数的x值. y缺省为0,结果变为一个整数值.如果y是一个负数,那么就截尾到小数点左边对应的位上.
trunc(sysdate)=to_date('20121231','yyyymmdd') 。
trunc函数可用于截取日期时间
用法:trunc(字段名,精度)
具体实例:
在表table1中,有一个字段名为sysdate,该行id=123,日期显示:2016/10/28 15:11:58
1)截取时间到年时,sql语句如下:
select trunc(sysdate,'yyyy') from table1 where id=123; --yyyy也可用year替换
显示:2016/1/1
2)截取时间到月时,sql语句:
select trunc(sysdate,'mm') from table1 where id=123;
显示:2016/10/1
3)截取时间到日时,sql语句:
select trunc(sysdate,'dd') from table1 where id=123;
显示:2016/10/28
4)截取时间到小时时,sql语句:
select trunc(sysdate,'hh') from table1 where id=123;
显示:2016/10/28 15:00:00
5)截取时间到分钟时,sql语句:
select trunc(sysdate,'mi') from table1 where id=123;
显示:2016/10/28 15:11:00
6)截取时间到秒暂时不知道怎么操作
7)不可直接用trunc(sysdate,'yyyy-mm-dd'),会提示“精度说明符过多”
2.decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)
该函数的含义如下:
IF 条件=值1 THEN
RETURN(翻译值1)
ELSIF 条件=值2 THEN
RETURN(翻译值2)
......
ELSIF 条件=值n THEN
RETURN(翻译值n)
ELSE
RETURN(缺省值)
END IF
decode(字段或字段的运算,值1,值2,值3)
这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3
当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多
参考:
http://www.cnblogs.com/juddhu/archive/2012/03/07/2383101.html
http://www.cnblogs.com/yangyang17/p/602