前面二白讲了一些简单的查询语句,仅仅知道查询语句的语法是不够的,要想实现更多的需求,更重要的是函数的使用,这节课我们简单说一下一些函数的使用。
一、函数的分类
什么叫做函数?
函数就是用来实现某种功能的,提前声明好的代码块
分类:
•系统函数
‣单行函数
•数值函数
•字符函数
•日期函数
•转换函数
•通用函数
‣聚合函数
‣分析函数
•自定义函数
‣单行函数 一次只影响一行
•数值函数 他是适用于数值型的数据
•字符函数 他是适用于字符型的数据
•日期函数 他是适用于日期型的数据
•转换函数 他是适用于各种数据类型之间的转换
•通用函数 他是适用于任何数据类型
二、数值函数
1. ABS(数) 绝对值 返回值:数值型
select abs(-1)
from dual
2.MOD(数1,数2) 取余 返回值:数值型
数1除以数2的余数
select mod(5,2)
from dual
注:特殊用法
(1):判断奇偶数
任何数和2取余,结果为1则表示他是奇数,否则就是偶数
(2):提取小数部分
select mod(3.52,1)
from dual
(3):数2为负数还是正数对结果的正负情况没有影响,结果的情况,只跟数1的正负有关
select mod(3.52,-1),mod(-3.52,1)
from dual
3.CEIL(数) 向上取整 往大了取,取最近的整数 返回值:数值型
4.FLOOR(数) 向下取整 往小了取,取最近的整数 返回值:数值型
select ceil(3.14),floor(3.14),
ceil(-3.14),floor(-3.14)
from dual
5.ROUND(数1[,数2]) 四舍五入 返回值:数值型
数1四舍五入保留数2位小数
数2不写,默认保留到整数
select round(3.1415926,2),
round(3.1415926,3),
round(1614.520,-3),
round(3.5415)
from dual
6.TRUNC(数1[,数2]) 截断 返回值:数值型
数1截断到保留数2位小数
数2不写,默认保留到整数
select trunc(3.1415926,2),
trunc(3.1415926,3),
trunc(1614.520,-3),
trunc(3.5415)
from dual
7.SIGN(数) 判断正负零
如果数为正数则返回1,负数返回-1,零返回0 返回值:数值型
select sign(-100),sign(100),sign(0)
from dual
8.POWER(数1,数2) 次方和开方 返回值:数值型
数1的数2次方
select power(2,3),power(2,-3),power(2,1/3)
from dual
三、日期函数
1.sysdate 返回系统时间
select sysdate
from dual
2.日期计算的规则
日期加减数字=日期加减天数
日期-日期=日期相差的总天数
select sysdate+3
from dual
select date'2024-3-26' - date'2022-11-4'
from dual
3.add_months(日期,数字) 日期加减数字个月
select add_months(sysdate,-3)
from dual
4.months_between(日期1,日期2) 日期之间相差的总月数
select months_between(date'2024-3-26',date'2024-1-1')
from dual
5.next_day(日期,星期几|数字)
求下一个星期几 一周之初是星期日
select next_day(sysdate,'星期一'),
next_day(sysdate,'2')
from dual
练习:求下一周的星期三
先求到本周日,再求本周日的下一个星期几
select next_day(next_day(sysdate-1,1),4)
from dual
6.last_day(日期) 返回日期的月末
select last_day(sysdate)
from dual
trunc:截断日期 也可以用来取整或取加小数点后几位
按照日期格式,将日期截断到日期格式之初
yyyy 年
mm 月
dd 日
hh|hh24 小时
mi 分钟
ss 秒
q 季度
语法:
trunc(日期,格式)
select trunc(sysdate,'yyyy'),
trunc(sysdate,'mm'),
trunc(sysdate+18,'q')
from dual
本章函数还是有点难度的,有一些经典的例题,有兴趣的同学可以尝试一下
1.求下周的星期几
2.求平闰年
3.求几岁几月零几天
这里二白就先不演示代码了
标签:sysdate,入门,日期,dual,Oracle,第三课,trunc,select,函数 From: https://blog.csdn.net/weixin_63511098/article/details/137054131