MySQL——内置函数

内置函数

​ 使用select执行函数;内置函数在where子句中也可以使用;

一、日期函数

​ 日期类型也是支持比较的;

mysql 复制代码
current_date()#当前日期,格式为 xxx-yyy-zzz 年-月-日
current_time()#当前时间,格式为 xxx:yyy:zzz 时:分:秒
current_timestamp()#当前时间戳,格式为 xxx-yyy-zzz xxx:yyy:zzz 年-月-日 时:分:秒
now()#与当前时间戳函数实现的效果是一样的;

#根据时间戳返回日期;其中参数可以选择now();
date(datetime)
#根据时间戳返回时间;其中参数可以选择now();
time(datetime)

#在日期的基础上加时间
date_add(date,interval 数字 数值单位)
#在日期的基础上减时间
date_sub(date,interval 数字 数值单位)
#date可以是日期也可以是时间甚至是时间戳,intval的数值单位可以是year,month,day,hour,minute,second;
#计算两个日期相差的时间
datediff(date1,date2)
#单位是天;

二、字符串函数

mysql 复制代码
charset(str)#返回字符串字符集;
concat(str1,str2)#进行字符串的拼接,包括数字也会转为字符串然后进行拼接;
instr(string,substring)#判断sub字符串是否在string字符串中,返回子串开始位置的下标;下标从1开始;
ucase(str)#将字符串转换成大写;
lcase(str)#将字符串转换成小写;
left(str,length)#从左边起将字符串中的length个字符提取出来;
right(str,length)#从右边起将字符串中的length个字符提取出来;
length(str)#返回字符串的长度,utf-8汉字大小是3个字节;
replace(str,search_str,replace_str)#在str中用replace_str替换search_str;
strcmp(str1,str2)#逐字符比较两字符串的大小;
substring(str,pos,length)#length可以缺省,表示直接截取到最后位置;
ltrim(str)#将字符串左面的空格进行裁剪;
rtrim(str)#将字符串右面的字符进行裁剪;
trim(str)#将字符串除了中间部分的空格进行裁剪;

三、数学函数

mysql 复制代码
abs(num)#绝对值函数,可以是整数也可以是浮点数;
bin(decimal_num)#十进制转二进制函数,会转换成整数的二进制;
hex(decimal_num)#十进制转换成十六进制函数,会转换成整数的十六进制;
conv(num,from_base,to_base)#进制转换;例如:select conv(10,10,5);将一个数从十进制转换成5进制;
ceiling(num)#返回一个浮点数的上限值,即向上取整;
floor(num)#返回一个浮点数的下限值,即向下取整;
format(num,decimal_places)#格式化显示数字,如果是整数用零进行填充,浮点数则是采取四舍五入的方式进行;
mod(num)#对数字进行取余数;
rand()#返回随机的浮点数,范围是[0.0,1.0);

3.1取整方式

​ 对于丢弃掉小数部分的取整方式叫做0向取整,如C语言中的9/4取商值的方式就是0向取整;还有向上取整和向下取整以及四舍五入的方式取整;

四、其它函数

mysql 复制代码
user()#查看一下当前用户是谁;
database()#查看一下当前在哪一个数据库文件中;
md5(str)#对字符串进行数字摘要,最后得到一个长度为32的字符串;一般在插入密码时,不能直接插入数字,而是要经过md5算法进行数字摘要插入;
password(str)#对输入的密码进行加密,形成密文;
ifnull(val1,val2)#如果val1为null,返回val2,否则返回val1;由于null不参与计算,所以需要进行设计;
相关推荐
llxxyy卢1 小时前
JWT安全&预编译CASE注入
数据库·sql·安全
大布布将军8 小时前
⚡️ 深入数据之海:SQL 基础与 ORM 的应用
前端·数据库·经验分享·sql·程序人生·面试·改行学it
JIngJaneIL8 小时前
基于java+ vue农产投入线上管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
源代码•宸9 小时前
goframe框架签到系统项目(BITFIELD 命令详解、Redis Key 设计、goframe 框架教程、安装MySQL)
开发语言·数据库·经验分享·redis·后端·mysql·golang
川贝枇杷膏cbppg9 小时前
Redis 的 AOF
java·数据库·redis
TG:@yunlaoda360 云老大9 小时前
如何在华为云国际站代理商控制台进行SFS Turbo的性能与容量核查?
服务器·网络·数据库·华为云
ytttr87310 小时前
MATLAB基于LDA的人脸识别算法实现(ORL数据库)
数据库·算法·matlab
云老大TG:@yunlaoda36010 小时前
如何进行华为云国际站代理商跨Region适配?
大数据·数据库·华为云·负载均衡
思成不止于此10 小时前
【MySQL 零基础入门】事务精讲(二):ACID 特性与并发问题
数据库·笔记·学习·mysql
Boilermaker199210 小时前
[MySQL] 初识 MySQL 与 SQL 基础
数据库·mysql