首页 > 代码库 > SQL内置函数细讲

SQL内置函数细讲

一、伪表。系统内置的只有一行一列数据的表。常用来执行函数。

            select 函数名 from dual

注:以下所有函数为了方便理解均用 伪表 做为事例!

二、 时间函数

1.sysdate:获取数据库系统的当前时间

例:select sysdate from dual 我们就会获取到当前系统的时间

2.add_months:对日期的月份进行加减

  select add_months(日期, 数值) from dual

  在这里的数值是必须要写的,如果不想对日期进行加减我们可以把数值写成0!

例:select add_months(sysdate, 1) from dual

  此时我取到了当前的时间

  如果数值写成1,那么我得出的时间的月份就是当前月份+1;

  如果数值写成0,那么我得出的时间的月份就是当前月份;

  如果数值写成-1,那么我得出的时间的月份就是当前月份-1;           

3.last_day:获取日期所在月份的最后一天

  select last_day(日期) from dual

  这个日期必须是date类型的,所以如果我们直接输入一个日期例如2012/3/3,它是会报错的,所以我们就要给日期进行转换把原本是char类型的数值转换为date类型。

转换方式:select last_day(to_date(‘2012/3/3‘, ‘yyyy/mm/dd‘)) from dual (在这里不过多叙述下面会细讲)

   select last_day(sysdate) from dual

这样我们就会取到当前月份的最后一天。

三、转换函数

1.to_date:把特定格式的字符串转换成日期型数据

例:select to_date(‘字符串‘, ‘yyyy/mm/dd hh24:mi:ss‘) from dual 

   select to_date(‘2010/3/5 12:12:12‘, ‘yyyy/mm/dd hh24:mi:ss‘) from dual

当我想用12小时制是我就不需要写24,直接hh就可以了。当然前面的小时数值要在1-12之间

2.to_char:把其他数据类型转换成特定格式的字符串类型

例:select to_char(‘日期型数据‘, ‘yyyy/mm/dd hh24:mi:ss‘) from dual

  select to_char(sysdate, ‘yyyy-mm-dd hh24:mi:ss‘) from dual

to_char 一般会用在时间的提取以及年龄的计算上,这是我们把日期型数据转变成我们想要的年份、月份。我们可以只写yyyy这要就只转换成了年份。

3.cast:通用转换函数

例:select cast(数据源 as 数据类型(长度)) from dual

四:数值函数

1.abs:求绝对值

例:select abs(-1) from dual

  求出的值为1

2.mod:求模(求余数)

例:select mod(m,n) from dual

  表示m/n的余数

3.ceil:求上限值

例:select ceil(9.1) from dual

  它的上限值就是10,

4.floor:求下限值

例:select floor(9.1) from dual

  它的下限值就是9,

(上限值与下限值就是最接近它的正数值)

5.round:四舍五入(从小数点后第一位开始四舍五入)

例:select round(9.499) from dual

  四舍五入后是9

例:select round(m, n) from dual

  当n>0时,保留小数点后n位

  例:select round(9.499, 2) from dual

    就是9.499四舍五入后保留小数点后两位数

  当n = 0,四舍五入后取整  

  例:select round(9.499, 0) from dual

    四舍五入后是9

  当n < 0,小数点前n位变0并四舍五入

  例:select round(7.499, -1) from dual

    直接从小数点前第一位开始四舍五入,结果是10

6.trunc

SQL内置函数细讲