oracle函数

MONTHS_BETWEEN的使用

  MONTHS_BETWEEN函数返回两个日期之间的月份数。

 

 

 若天数不够一月或多于一月,则以31为分母计算

 

 

 

oracle之TRUNC函数

TRUNC(number,num_digits)

Number 需要截尾取整的数字。 
Num_digits 用于指定取整精度的数字,Num_digits 的默认值为 0。如果Num_digits为正数,则截取小数点后Num_digits位;如果为负数,则先保留整数部分,然后从个位开始向前数,并将遇到的数字都变为0。
TRUNC()函数在截取时不进行四舍五入,直接截取。

 

针对日期的案例,如:

select trunc(sysdate) from dual --2017/6/13  返回当天的日期

select trunc(sysdate,'yyyy') from dual   --2017/1/1  返回当年第一天.

select trunc(sysdate,'mm') from dual  --2017/6/1  返回当月第一天.

select trunc(sysdate,'d') from dual  --2017/6/11 返回当前星期的第一天(以周日为第一天).

select trunc(sysdate,'dd') from dual  --2017/6/13  返回当前年月日

select trunc(sysdate,'hh') from dual  --2017/6/13 13:00:00  返回当前小时

select trunc(sysdate,'mi') from dual  --2017/6/13 13:06:00  返回当前分钟

decode函数:

decode(X,A,B,C,D,E)
这个函数运行的结果是,当X = A,函数返回B;当X != A 且 X = C,函数返回D;当X != A 且 X != C,函数返回E。 其中,X、A、B、C、D、E都可以是表达式,这个函数使得某些sql语句简单了许多

 

 

oracle函数详解:https://www.cnblogs.com/lxl57610/p/7442130.html

 

oracle中rownum的含义,对于表,在insert记录时,oracle就按照insert的顺序,将rownum分配给每一行记录,因此在select一个基表的时候,rownum的排序是根据insert记录的顺序显示的,

select rownum as rn, t.* from emp t;(写法)

第一条记录
select * from emp where rownum=1;

前两条记录
select * from emp where rownum<=2;

查看表中第2条记录select * from ( select rownum as rn, t.* from emp t where rownum<=2 ) where rn=2 ;
posted @ 2019-09-02 16:31  bai白  阅读(242)  评论(0编辑  收藏  举报