尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

【MySQL】内置函数

【MySQL】内置函数
📅 发布时间:2026/7/1 9:35:18

目录

日期时间类函数

字符串函数

数学函数

其他函数


日期时间类函数

这类函数用于获取服务器当前的日期、时间或时间戳。

函数返回值示例 (假设当前时间是 2026-06-30 15:30:00)
CURRENT_DATE()当前日期,格式为YYYY-MM-DD2026-06-30
CURRENT_TIME()当前时间,格式为HH:MM:SS15:30:00
CURRENT_TIMESTAMP()或NOW()当前日期和时间,格式为YYYY-MM-DD HH:MM:SS2026-06-30 15:30:00
DATE(datetime)返回参数的年月日的部分DATE(2026-06-30 15:30:00),返回2026-06-30;DATE(NOW())同理
date_add(date,interval d_value_type)返回 date 加上 d_value_type 后的日期

date_add('2026-06-30 15:30:00',interval 10 day

),返回 2026-07-10 15:30:00,date_add(now(),interval 10 day)同理.day 可以是 minute 或 second

date_sub(date,interval d_value_type)返回 date 减去 d_value_type 后的日期类比 date_add
datediff(date1,date2)返回 date1 - date2 ,单位是 daydatediff('2017-10-10', '2016-9-1') 返回 404,datediff(date(now()),2016-9-1)同理

案例:生日表

// 创建一张表,记录生日 create table tmp( id int primary key auto_increment, birthday date ); // 注意 date 是 date 类型的 // 添加当前日期: insert into tmp(birthday) values(current_date()); insert into tmp(birthday) values(current_time()); mysql> select * from tmp; +----+------------+ | id | birthday | +----+------------+ | 1 | 2017-11-19 | +----+------------+ | 2 | 2017-11-19 | +----+------------+

从上面的案例我们注意到:current_time() 返回的是时分秒,居然可以正确赋值给 date 类型的 birthday。

案例:获取两分钟以内的评论

// 创建一个留言表 mysql> create table msg ( id int primary key auto_increment, content varchar(30) not null, sendtime datetime ); // 插入数据 mysql> insert into msg (content,sendtime) values('纸上得来终觉浅', now()); mysql> insert into msg (content,sendtime) values('恐惊天上人', now()); // 获取两分钟以内的评论 mysql> select content,sendtime from msg mysql> where datediff(now(),interval 2 minute) < sendtime;

字符串函数

函数返回值示例
charset('str')返回str的编码集

charset('abc'),返回 utf8

select charset(column_name) form table_name,返回表中某一列的编码集

concat('str1','str2','str3',...)返回拼接后的字符串

concat('a','b','c') 返回 abc

concat('abc','bef'),返回abcdef

instr('str1','str2')返回 str2 在 str1 出现的位置,没有就返回 0instr('abc','b')返回 1
ucase('str')将str转换为大写ucase('abc123')返回 ABC123
lcase('str')将str转换为小写ucase('ABC123')返回 abc123
left('str',len) 和 right('str',len)

left从str开始提取 len 个字符,right从str结尾提取 len 个字符,

left('abc1234',4)返回 abc1,right('abc1234',4) 返回 1234
length('str‘)返回str的长度,单位是字节

length('abc') 返回 3,

length('中国') 返回 6

replace('str','aim_str','replace_str')在 str 中找到 aim_str,并将它替换为 replace_str

replace('abcXXX1234','XXX',def),'

abcXXX1234变成abcdef1234

strcmp('str1','str2')比较 str1 和 str2 的字典序大小,如果 str1 = str2 返回 0,如果 str1 > str2 返回 1,如果 str1 < str2,返回 -1

strcmp('abc','abc') 返回 0

strcmp('bbc','abc') 返回 1

strcmp('abc','bbc') 返回 -1

substring('str',pos,len)从 str 的 pos 位置开始截取 len 长度的 字符串.len 可以省略,表示截取到末尾

substring('abcdef',4,3) 返回 def

substring('abcdef',2) 返回bcdef

ltrim('str')、rtrim('str')、trim('str')trim:意为修剪,ltrim:将str左边的空格去掉,rtrim:将str右边的空格去掉,trim:将str左边和右边的空格都去掉

ltrim(' abc ')返回’abc ‘

rtrim(' abc ')返回’ abc‘

trim(' abc ')返回’abc‘

数学函数

函数说明示例
ABS(x)返回x的绝对值ABS(-5.6)→5.6
bin(x)十进制转二进制bin(10) → 1010
hex(x)十进制转十六进制bin(11) → B
conv(x,进制1,进制2)将 x 从进制1转换为进制2conv(10,10,2) → 1010
MOD(x, y)或x % y返回x除以y的余数(取模)MOD(10, 3)→1
10 % 3→1
CEIL(x)或CEILING(x)返回不小于x的最小整数(向上取整)CEIL(3.14)→4
CEIL(-3.14)→-3
FLOOR(x)返回不大于x的最大整数(向下取整)FLOOR(3.14)→3
FLOOR(-3.14)→-4
format(x,y)保留 x 的 y 位小数(不做四舍五入)format(3.1415926,4) → 3.1415
ROUND(x, d)将x四舍五入到d位小数;若d省略则取整为整数ROUND(3.14159, 2)→3.14
ROUND(3.5)→4
TRUNCATE(x, d)将x截断到d位小数(不四舍五入)TRUNCATE(3.14159, 2)→3.14
rand()返回随机浮点数,范围 [0.0,1.0)0.17174184338351883

其他函数

函数说明示例
user()查询当前用户\
database()查询当前在哪个数据库bin(10) → 1010
md5('str')对一个字符串进行md5摘要,摘要后得到一个32位字符串,通常用于数据库对用户密码进行加密

md5('1234') →

81dc9bdb52d04dc20036db...

password('str')专门用于数据库对用户密码进行加密

password('1234') →

*A4B6157319038724E3560....

ifnull('str1','str2')如果 str1 为 null,返回 str2,否则返回 str1

ifnull('abc','123') →abc

ifnull('abc',null) →abc

ifnull(null,'123') →123

ifnull(null,null) →null

相关新闻

  • 一套后端API驱动四端——织码在线教育系统多端统一学习体验设计
  • 别再手动数氢键了!用Materials Studio脚本一键搞定周期性体系统计(附完整Perl代码)
  • 手把手教你用STC89C52单片机读取MPU6050数据,并在LCD1602上实时显示(附完整代码)

最新新闻

  • 如何选择最佳系统健康检查工具:openEuler env_check与其他工具的完整对比分析
  • 为什么选择openEuler HPC Runner?5大优势让HPC开发效率提升300%
  • 5G+AIoT解决方案:智能物联网的下一站
  • VMAnalyzer核心功能详解:如何实现虚拟机CPU利用率实时监控的完整指南
  • witty-profiler NUMA拓扑分析:跨NUMA访问优化的完整方案指南
  • VMAnalyzer安全指南:监控系统的权限管理与数据保护

日新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号