首页 > 代码库 > oracle中函数

oracle中函数

一:前言

  最近决定每天都把知识点总结下,然后每个星期把知识点在进行分类发表日志。

二:The Question

  (1):在oracle中进行年龄的计算,知道出生日期进行计算后截取,本来是一个很简单的函数,但是我觉得对于这些东西真的是用多了自己就记住了所以我还是记载下来,不然我每次都要进行查找,还是很麻烦的。

计算年龄的函数:

Trunc((sysdate-CSRQ)/365,0) as nl
这个函数的形式:Trunc(number,decimals);该函数是返回处理后的值。和ROUND相似,但是该函数不会做舍入处理,而是把小数点后的全部截去。

number:待截取处理的数值;

descimals:指明保留小数点后面的位数。(可选择忽略,则截取去所有的小数点部分);

eg:

TRUNC(22.22,0)=22;

TRUNC(22.22)=22;

TRUNC(22.3356456,2)=22.33;

TRUNC(22.54464,-1)=20;

TRUNC也可以表示时间的截取:

eg:

trunc(sysdate,‘yyyy‘) --返回当年第一天.

trunc(sysdate,‘mm‘) --返回当月第一天.

trunc(sysdate,‘d‘) --返回当前星期的第一天.

 

 

刚刚自己试验了以下这种情况: select Trunc(to_DATE(sysdate,‘dd-mon-yyyy‘)) from dual;

得到的结果时候如下:0014/9/23;

我想了一会还是不知道是为什么。待解中。

 

(2):oracle中的replace函数

eg:replace(get_name(z.hjqh,‘XZQY‘),‘ ‘,‘‘)||z.hjmx) as hjmx;这个表示出去字段中的空格

这里说下在js中除去空格的情况 var aa="fdksja fckdjah fcsdajfha",aa=aa.raplace(/\s+/,"");

 

(3):oracle函数WM_CONCAT
    今天在查询一些问题时看到了一个oracle函数WM_CONCAT,刚刚开始我是不知道这个函数是什么意思的,不过见到了急看一看,积少成多嘛,

自己在数据库中随便试验了以下这个函数,大概知道了这个函数的基本功能吧

select wm_concat(id) from t_xx whereid between 1 and 10;
结果为:1,2,3,4,5,6,7,8,9,10

说白了就是把id连起来中间用逗号分开。网上说的是如果要达到这种效果最好自己来写个方法。因为oracle数据库在版本不同时调用这个方法的返回值类型可能有区别。

oracle中函数