【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就返回第二个参数

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


相关推荐
云和数据.ChenGuang5 小时前
Django 应用安装脚本 – 如何将应用添加到 INSTALLED_APPS 设置中 原创
数据库·django·sqlite
woshilys5 小时前
sql server 查询对象的修改时间
运维·数据库·sqlserver
Hacker_LaoYi5 小时前
SQL注入的那些面试题总结
数据库·sql
建投数据6 小时前
建投数据与腾讯云数据库TDSQL完成产品兼容性互认证
数据库·腾讯云
Hacker_LaoYi7 小时前
【渗透技术总结】SQL手工注入总结
数据库·sql
岁月变迁呀7 小时前
Redis梳理
数据库·redis·缓存
独行soc7 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
数据库·sql·安全·web安全·漏洞挖掘·hw
你的微笑,乱了夏天8 小时前
linux centos 7 安装 mongodb7
数据库·mongodb
工业甲酰苯胺8 小时前
分布式系统架构:服务容错
数据库·架构
独行soc9 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘