【Mysql】第七章 内置函数(日期函数+字符串函数+数学函数等)


文章目录


一、日期函数

current_date() 获取年月日 select current_date();
current_time() 获得时分秒 select current_time();
current_timestamp() 获得年月日时分秒 select current_timestamp();
now() 和current_timestamp一样 select now();
date(datetime) 获datetime参数的时间 select date(now());
date_add(date, interval 时间) 在日期的基础上加时间 select date_add('2017-10-28', interval 10 day);//year、month、day、hour、minute、second
date_sub(date, interval 时间) 在日期的基础上减去时间 select date_sub('2017-10-1', interval 2 month);
datediff(date1, date2) 两个日期相差多少天 select datediff('2017-10-10', '2016-9-1');

二、字符串函数

charset(str) 获取字符串使用的字符集 select charset(ename) from emp;//查找emp表中ename列的字符集是什么
concat(str1, str2...) 将字符串连接 select concat('你好',ename) from emp;// 将表emp中列和'你好'字符串拼接
instr(str, substr) 获取substr在str中首次出现的位置,没有返回0 select instr('abcde', 'cd');//返回3
ucase(str) 获取转换成大写后的字符串
lcase(str) 获取转换成小写后的字符串
left(str, length) 从字符串的左边开始,向后截取length个字符 select left('abcde', 2);//返回ab
length(str) 返回字符串占用字节数 select length(name) from student;//求表student中列name占用字节数
replace(列/str, search_str, replace_str) 将列中的search_str替换成replace_str select replace(ename, 's', '上海') from emp;//将表emp中列ename中每一个s替换为上海
strcmp(str1, str2) 逐字符比较两个字符串的大小,相等返回0,前者大返回1,后者大返回-1 select strcmp('bcd', 'abc');//返回1
substring(列/str, position [, length]) 从字符串的position开始,向后截取length个字符 select substring(ename, 2, 3) from emp;//将表emp中截取列ename中每一个从第2开始向后截取3个字符
ltrim(str)、rtrim(str)、trim(str) 去除字符串的前空格、后空格、前后空格 select trim(' abcd ');//返回abcd

三、数学函数

abs(number) 绝对值 select abs(-10);//返回10
bin(number) 十进制转换成二进制 select bin(10);//返回1010
hex(number) 十进制转换成十六进制 select hex(10);//返回A
conv(number, from_base, to_base) from_base进制转换成to_base进制 select conv(10,10,2);//返回1010
ceiling(number) 向上取整 select ceiling(3.3);//返回4还有select ceiling(-3.3);//返回-3
floor(number) 向下取整 select ceiling(3.3);//返回3还有select ceiling(-3.3);//返回-4
format(number, n) 格式化,保留n位小数(四舍五入) select format(3.14159,2);//返回3.14
rand() 生成随机浮点数,范围 [0.0, 1.0) select floor(rand()*100);//返回随机1-100
mod(number, denominator) 求余 select mod(10,3);//返回1

四、其他函数

user() 返回当前用户名和主机名 select user();
md5() 对一个字符串进行md5摘要,得到一个32位字符串 select md5('abcde');
database() 显示当前正在使用的数据库 select database();
password() 数据进行加密 select password('abcde');
ifnull(str1,str2) 第一个参数不为null则返回第一个参数,否则返回第二个参数 select ifnull(null,'a');//第一个数据是null就返回第二个参数

注意:内部数据形成摘要,不是明文存储,有利于保护数据


相关推荐
小吴编程之路2 小时前
MySQL 索引核心特性深度解析:从底层原理到实操应用
数据库·mysql
~莫子2 小时前
MySQL集群技术
数据库·mysql
凤山老林2 小时前
SpringBoot 使用 H2 文本数据库构建轻量级应用
java·数据库·spring boot·后端
就不掉头发2 小时前
Linux与数据库进阶
数据库
与衫2 小时前
Gudu SQL Omni 技术深度解析
数据库·sql
咖啡の猫3 小时前
Redis桌面客户端
数据库·redis·缓存
oradh3 小时前
Oracle 11g数据库软件和数据库静默安装
数据库·oracle
what丶k3 小时前
如何保证 Redis 与 MySQL 数据一致性?后端必备实践指南
数据库·redis·mysql
_半夏曲3 小时前
PostgreSQL 13、14、15 区别
数据库·postgresql
把你毕设抢过来3 小时前
基于Spring Boot的社区智慧养老监护管理平台(源码+文档)
数据库·spring boot·后端