Oracle / PLSQL写语句 常用的几个函数
下面开始记录一下,自己在Oracle或者PLSQL常用的几个函数,
1add_months 增加或减去月份
2. last_day(sysdate) 返回日期的最后一天
3. months_between (date2,date1) 给出date2-date1的月份
4. new_time (date,'this','that') 给出在this时区=other时区的日期和时间
5. next_day (date,'day') 给出日期date和星期x之后计算下一个星期的日期
6. sysdate 用来得到系统的当前日期
7. hextoraw 将一个十六进制构成的字符串转换为二进制
8. rawtohext 将一个二进制构成的字符串转换为十六进
9. rowidtochar 将ROWID数据类型转换为字符类型
10.avg(DISTINCT|ALL) all表示对所有的值求平均值,distinct只对不同的值求平均值
11.max(DISTINCT|ALL) 求最大值,DISTINCT表示对不同的值求最大值,相同的只取一次
12.min(DISTINCT|ALL) 求最小值,DISTINCT表示对不同的值求最小值,相同的只取一次
13. stddev (distinct|all) 求标准差,DISTINCT表示只对不同的值求标准差
14. variance (DISTINCT|ALL) 求协方差
15. group by主要用来对一组数进行统计
16. having 对分组统计再加限制条件
17.ORDER BY 用于对查询到的结果进行排序输出
1、NUMTODSINTERVAL( number, expression )
参数说明:
number:数字类型的值
expression:单位,这里的单位是固定的,有DAY,HOUR,MINUTE,SECOND
1
2
3
4
5
6
7
8
|
举例说明: -- 当前日期加 25 天 select sysdate, sysdate + numtodsinterval( 25 , 'day' ) as res from dual; -- 当前日期加 2 小时,这里转换了下时间格式,更容易看出来,下图所示 select to_char(sysdate, 'yyyy-MM-dd hh24:mi:ss' ), to_char(sysdate + numtodsinterval( 2 , 'hour' ), 'yyyy-MM-dd hh24:mi:ss' ) as res from dual; -- 当前日期加分钟,秒,可以依葫芦画瓢,尝试写一下 |
显示效果如下图所示:
与此同时,和他相同的函数是下面的函数
2、NUMTOYMINTERVAL( number, expression ) 参数说明: number:数字类型的值 expression:单位,这里的单位是固定的,有MONTH,YEAR
1
2
3
4
5
6
|
举例说明: -- 当前日期加 2 月 select sysdate, sysdate + numtoyminterval( 2 , 'month' ) as res from dual; -- 当前日期加 2 年 select sysdate, sysdate + numtoyminterval( 2 , 'year' ) as res from dual; |
显示效果如下图所示: