1.转换函数
to_char()
to_number()
to_date()
例子:
- --to_number():转成数值型
select to_number('22')+23 from dual;
2.--to_char():转成字符型
select to_char(22)||'哈哈' from dual;
select to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual;--定义格式
select to_char(sysdate,'yyyy"年"mm"月"dd"日" hh:mi:ss') from dual;--定义格式
3.--to_date():转为日期型 hh24:24小时制
select to_date('2022-02-02 15:15:15','yyyy-mm-dd hh24:mi:ss') from dual;
2.日期函数
sysdate/systimestamp
add_months(date,number)
months_between(date,date)
extract(xx from date) 1 2
last_day(date)
next_day(date,week)
round(date)
trunc(date)
例子:
- --系统的当前时间
select sysdate from dual;
2. --更为精确 了解即可
select systimestamp from dual;
3. --增加/减少指定的月数
select add_months(sysdate,-11) from dual;
4. --两个日期之间相差的月份数 前者-后者
select months_between(sysdate,to_date('2024-02-25','yyyy-mm-dd')) from dual;
5. --取指定日期中的年/月/日
select extract(year from sysdate) from dual;
select extract(month from sysdate) from dual;
select extract(day from sysdate) from dual;
--案例:查询所有在2月份入职的员工信息
select * from emp where extract(month from hiredate)=2;
--案例:查询各个月份入职的员工人数
select extract(month from hiredate) 月份,count(*) 人数 from emp group by extract(month from hiredate)
6. --取指定日期的当月最后一天
select last_day(sysdate) from dual;
7. --取下一个星期日的日期
select next_day(sysdate,'星期日') from dual;
8. --日期的四舍五入 超过12点就取下一天
select round(to_date('2022-08-08 14:11:11','yyyy-mm-dd hh24:mi:ss')) from dual;
9.--取年月日 了解即可
select trunc(to_date('2022-08-08 11:11:11','yyyy-mm-dd hh24:mi:ss')) from dual;
3.字符串函数
initcap(varchar2)
lower(varchar2)
upper(varchar2)
ltrim/rtrim(varchar2,varchar2)
replace(varchar2,varchar2,varchar2)
instr(varchar2,varchar2[,number])
substr(varchar2,number[,number])
concat(varchar2,varchar2)
ascii(varchar2)
chr(number)
lpad/rpad(varchar2,number,varchar2)
length(varchar2)
decode(自定义)
--字符串长度 1个汉字=1个字符
select length('龚彬abcd') from dual;
--全小写/大写
select lower('MissYou') from dual;
select upper('MissYou') from dual;
--首字母大写
select initcap('nice') from dual;
--字符串的替换
select replace('I love you','I','He') from dual;
--从第2位往后截取5位
select substr('goodgoodstudy',2,5) from dual;
--从第3位截取到最后
select substr('beautiful',3) from dual;
--拼接 ||
select concat('兰基佬','好狗') from dual;
--从指定位置开始找c第一次出现的位置
select instr('abcdefgabcd','c',4) from dual;
--按顺序去除左边/右边指定字符
select ltrim('abcdefg','bc') from dual;
select rtrim('abcdefg','f') from dual;
--指定字符的ASCII码
select ascii('B') from dual;
--指定ASCII码的字符
select chr(100) from dual;
--左/右填充
select lpad('abcd',6,'x') from dual;
select rpad('abcd',6,'x') from dual;
--找对应关系
select decode('c','g','f','a','3','c','s') from dual;
4.数学函数
abs(number)
ceil(number)
floor(number)
round(number,number)
trunc(number,number)
sign(number)
sqrt(number)
mod(number,number)
power(number,number)
--绝对值
select abs(-23) from dual;
--开平方根
select sqrt(625) from dual;
--幂值
select power(3,3) from dual;
--取余数
select mod(11,3) from dual;
--向上取整 取大于它的最小整数
select ceil(43.56) from dual;
--向下取整 取小于它的最大整数
select floor(34.56) from dual;
--三种结果 正数:1 负数:-1 零:0
select sign(0) from dual;
--四舍五入
select round(23.41,1) from dual;
--保留有效数字 保留1位小数
select trunc(23.46,1) from dual;