【MySQL】7.MySQL 的内置函数

MySQL的内置函数

一.日期函数

函数名称 说明
current_date() 当前日期
current_time() 当前时间
current_timestamp 当前时间戳(日期时间)
date(datetime) 截取 datetime 的日期部分
date_add(date, interval d_value_type) 给 date 添加一段时间,interval 后的数值单位可以是 day, minute, second, year
date_sub(date, interval d_vaule_type) 给 date 减去一段时间,interval 后的数值单位可以是 day, minute, second, year
datediff(date1, date2) 计算 date1 和 date2 两个日期的差值,单位是天
now() 当前日期时间
sql 复制代码
//案例:创建一个留言表
create table msg(
id int primary key auto_increment,
content varchar(30) not null, 
sendtime datetime
);

//插入数据
insert into msg(content,sendtime) values('hello1', now()); 
insert into msg(content,sendtime) values('hello2', now()); 
select * from msg; 
+----+---------+---------------------+
| id | content | sendtime            |
+----+---------+---------------------+
|  1 | hello1  | 2024-07-12 10:57:17 |
|  2 | hello2  | 2024-07-12 10:57:22 |
+----+---------+---------------------+

//显示所有留言信息,发布日期只显示日期,不用显示时间
select content, date(sendtime) from msg;
+---------+----------------+
| content | date(sendtime) |
+---------+----------------+
| hello1  | 2024-07-12     |
| hello2  | 2024-07-12     |
+---------+----------------+

//查询在2分中内发布的帖子
select * from msg where date_add(sendtime, interval 2 minute) > now();

二.字符串函数

函数名称 说明
charset(str) 返回字符串的字符集
concat(str1, str2, ...) 连接多个字符串
instr(string, substring) 返回 substring 在 string 中的下标(从 1 开始),如果存在则返回 0
ucase(str) 转大写
lcase(str) 转小写
left(str, length) 从 string 的左边起截取 length 个字符
length(str) 返回 str 长度,单位是字节(utf8 编码中,字母,数字占 1 字节,汉字占 3 字节)
replace(str, search_str, replace_str) 在 str 中用 replace_str 替换 search_str,返回替换后的结果
strcmp(str1, str2) 比较两字符串大小
substring(str, pos ,length) 从 pos 位置开始截取 str,取 length 个字符
ltrim(str) rtrim(str) trim(str) 去除前空格,后空格,前后空格

三.数学函数

函数名称 说明
abs(num) 取绝对值
bin(decimal_number) 十进制转二进制
hex(decimal_number) 十进制转十六进制
conv(num, from_base, to_base) 进制转换
celling(num) 向上取整
floor(num) 向下取整
format(number, decimal_places) 格式化,保留小数位数
rand() 返回随机浮点数,范围0.0,1.0
mod(num, denominator) 取模,求余

四.其它函数

  • user() 查询当前用户
  • md5(str)对一个字符串进行 md5 摘要,摘要后得到一个 32 位字符串
  • database()显示当前正在使用的数据库
  • password()函数,MySQL 数据库使用该函数对用户加密
  • ifnull(val1, val2) 如果 val1 为 null,返回 val2,否则返回 val1 的值
相关推荐
kyle~10 分钟前
DTO --- 数据封装
数据库·oracle·前后端
vx_Biye_Design28 分钟前
PHP中医养生馆预约系统60841-计算机课程设计、毕业设计
vue.js·spring boot·后端·mysql·php·课程设计·express
Nebula_g35 分钟前
云禾外卖补充—项目整体后端运行逻辑-对流程的更深层次理解
java·开发语言·网络·数据库·状态模式·javase
太理摆烂哥39 分钟前
MySQL数据类型
数据库·mysql
程序员小孔.44 分钟前
基于 SpringBoot + UniApp + Vue 的家政服务系统设计与实现
前端·数据库·spring boot·python·docker·微信小程序
执笔为剑1 小时前
2.1.3-1、兼容MySQL特性-(数据类型、函数、SQL、PL与SQL)
mysql
草莓熊Lotso4 小时前
【C++ 基于微服务的即时通讯系统】etcd + brpc 从安装到服务注册发现全链路实战
网络·数据库·c++·redis·微服务·etcd
Lethehong10 小时前
Oracle 加个字段,目标库就报错?KFS 用“先拆后组“打通异构 DDL
数据库·oracle
Web极客码10 小时前
锁定真正的磁盘卡顿:我用 OpenCode 配合 eBPF 诊断 NVMe 队列深度延迟与 I/O 写放大
数据库·oracle
cspttty11 小时前
2027用户研究求职准备:应用统计学如何补齐研究设计与业务表达
大数据·数据库