MySQL内置函数(8)

文章目录

  • 前言
  • 一、日期函数
  • 二、字符串函数
  • 三、数学函数
  • 四、其它函数
  • 总结


前言

  其实在之前的几篇中我们也用到了内置函数,现在我们再来系统学习一下它!


一、日期函数

函数名称描述
current_date()获取当前日期
current_time()获取当前时间
current_timestamp()获取当前时间戳
date(datetime)返回 datetime 参数的日期部分
date_add(date, interval d_value_type)在 date 中添加日期或时间,interval 后的数值单位可以是 year、minute、second、day
date_sub(date, interval d_value_type)在 date 中减去日期或时间,interval 后的数值单位可以是 year、minute、second、day
datediff(date1, date2)计算两个日期之间的差值,单位是天
now()获取当前日期时间
  • 获取当前日期
SELECT current_date();
  • 获取当前时间
SELECT current_time();
  • 获取当前时间戳
SELECT current_timestamp();
  • 获取当前日期时间
SELECT now();

在这里插入图片描述

  • 截断当前时间,只获得日期部分
SELECT date(now());
  • 在日期的基础上加日期
SELECT date_add(now(), interval 10 year);
  • 在日期的基础上减去时间
SELECT date_sub(now(), interval 10 minute);
  • 计算两个日期之间相差多少天
SELECT datediff(now(), '1949-10-01');

在这里插入图片描述
  学了以上函数总得来个实际案例来试验一下

  创建一张记录生日的表

CREATE TABLE tmp(id INT PRIMARY KEY AUTO_INCREMENT,birthday DATE NOT NULL
);

  虽然 current_time() 这里显示的是时分秒,实际上插入的时候也能插入,所有的时间在获取的时候都是 年-月-日,时:分:秒,只不过显示时是不一样的。

在这里插入图片描述

  创建一个留言表

CREATE TABLE msg(							id INT PRIMARY KEY AUTO_INCREMENT,content VARCHAR(100) NOT NULL,sendtime DATETIME
);

  显示所有留言信息,发布日期只显示日期

SELECT content, date(sendtime) FROM msg;

在这里插入图片描述
  然后我们查看2分钟内发的贴子

SELECT * FROM msg WHERE date_add(sendtime, interval 2 minute) > now();

在这里插入图片描述

二、字符串函数

函数名称描述
charset(str)返回字符串字符集(编码集)
concat(string [,…])连接字符串
instr(string, substring)返回子字符串在字符串中的位置,无则返回0(mysql 起始从 1 开始
ucase(string)转换成大写
lcase(string)转换成小写
left(string, length)从字符串左边起取 length 个字符
right(string, length)从字符串右边起取 length 个字符
length(string)字符串长度
replace(str, search_str, replace_str)在字符串中用 replace_str 替换 search_str
strcmp(string1, string2)逐字符比较两个字符串大小
substring(str, position [,length])从字符串的 position 开始,取 length 个字符
ltrim(string), rtrim(string), trim(string)去除前后空格
  • 获取 emp 表的 ename 列的字符集
SELECT charset(ename) FROM emp;
  • 连接字符串
SELECT concat(name, '的语文是', chinese, '分,', '数学', math, '分,', '英语', english, '分') FROM exam_result;

在这里插入图片描述

  • 求学生表中学生姓名占用的字节数
select length(name) from exam_result;

  以前说过 mysql 的字符真的就是一个字符,utf8中一个汉字占3个字节。

  length函数返回字符串长度,以字节为单位。如果是多字节字符则计算多个字节数;如果是单字节字符则算作一个字节。比如:字母,数字算作一个字节,中文表示多个字节数(与字符集编码有关)
在这里插入图片描述

  • 截取 emp 表中 ename 字段的第二个到第三个字符
SELECT ename, substring(ename, 2, 2) FROM emp;

在这里插入图片描述

  • 以首字母小写的方式显示所有员工的姓名
SELECT ename, concat(lcase(substring(ename, 1, 1)), substring(ename, 2)) FROM emp;

在这里插入图片描述
  substring(ename, 1, 1) 从第一个开始,截一个字符

三、数学函数

函数名称描述
abs(number)绝对值函数
bin(decimal_number)十进制转二进制
hex(decimalNumber)转换成十六进制
conv(number, from_base, to_base)进制转换
ceiling(number)向上去整(数据变大
floor(number)向下去整
format(number, decimal_places)格式化,保留小数位数
rand()返回随机浮点数,范围 [0.0, 1.0)
mod(number, denominator)取模,求余
  • ceiling(number) 向上去整
  • floor(number) 向下去整

  一般我进行取整的时候是进行 四舍五入 取整,但是除了 四舍五入 还有其他的取整方式。我们把丢弃小数部分的取整方式称为向0取整,以前我们在 C 学的 9 / 2 = 4 就是向0取整,还有向大的方向取的向上取整、向小的方向取的向下取整

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

四、其它函数

  查询当前用户

SELECT user();

  显示当前正在使用的数据库

SELECT database();

在这里插入图片描述
  一个字符串进行md5摘要,摘要后得到一个32位字符串

select md5(string);

在这里插入图片描述
  如果 val1 为null,返回 val2 ,否则返回 val1 的值

IFNULL(val1, val2) -- 如果 `val1` 为 `NULL`,返回 `val2`,否则返回 `val1` 的值

在这里插入图片描述


总结

  以上函数提供了丰富的操作能力,使得在处理数据时更加灵活和方便,因此我们需要好好掌握!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/88566.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/88566.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

苍穹外卖项目日记(day04)

苍穹外卖|项目日记(day04) 前言: 今天主要是接口开发, 涉及的新东西不多, 需要注意的只有多表联查和修改的逻辑,今日难点: 1.菜品的停起售状态设置 2.套餐的停起售状态设置 3.动态sql中的 useGeneratedKeys 与 keyProperty 两个参数 一. 菜品的停起售状态设置 ​ 在菜品的停售中…

React之旅-05 List Key

每个React的初学者,在调试程序时,都会遇到这样的警告:Warning: Each child in a list should have a unique "key" prop. 如下面的代码: const list [Learn React, Learn GraphQL];const ListWithoutKey () > (&l…

[特殊字符] 人工智能技术全景:从基础理论到前沿应用的深度解析

🚀 人工智能技术全景:从基础理论到前沿应用的深度解析 在这个AI驱动的时代,理解人工智能的核心技术和应用场景已成为技术人员的必备技能。本文将带你深入探索AI的发展脉络、核心技术差异以及在各行业的创新应用。 文章目录🚀 人工…

Go语言教程-环境搭建

前言 Go(又称 Golang)是由 Google 开发的一种 开源、静态类型、编译型 编程语言,于 2009 年正式发布。它旨在解决现代软件开发中的高并发、高性能和可维护性问题,尤其适合 云计算、微服务、分布式系统 等领域。 Go 语言国际官网…

windows指定某node及npm版本下载

下载并安装 nvm-windowshttps://github.com/coreybutler/nvm-windows/releases(选择 nvm-setup.zip)。打开命令提示符(管理员权限),安装 Node.js v16.15.0: nvm install 16.15.0 nvm use 16.15.0 验证node版…

每天一个前端小知识 Day 28 - Web Workers / 多线程模型在前端中的应用实践

Web Workers / 多线程模型在前端中的应用实践🧠 一、为什么前端需要多线程? 单线程 JS 的瓶颈:浏览器主线程不仅负责执行 JS,还要负责: UI 渲染(DOM/CSS)用户事件处理(点击、输入&am…

python:ImportError: cannot import name ‘ParameterSource‘ from ‘click.core‘

浏览器访问网站抛错:ImportError: cannot import name ParameterSource from click.core (E:\environment\python\Lib\site-packages\click\core.py)问题分析:1. click 版本问题ParameterSource 可能是在某个特定版本的 click 库中引入的,而你…

flink 去重

LOCALTIMESTAMP as time_stamp ts as case when time is null then CURRENT_TIMESTAMP else TO_TIMESTAMP_LTZ(time, 0) end , watermark for ts as ts - interval ‘60’ second PARTITION BY 的都有回撤流 group by 的没有回撤流 因为算的是指标 开窗又慢 SELECT * FROM (…

【音视频】TS协议解析

参考博客:https://blog.csdn.net/rell336/article/details/38109621?utm_mediumdistribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_sourcedistribute.pc_relevant_t0.none-task-blog-BlogCommendFromMac…

uniapp 日期组件可选择年月

month-picker 月份选择器组件 组件介绍 month-picker 是一个用于选择年月的自定义组件,基于 uni-app 开发,提供了简洁的月份选择功能。 解决弹框底部出现底部页面区域 safe-area属性设为true时,即可解决这个问题效果如图功能特点 支持选择年份…

从真人到数字分身:3D人脸扫描设备在高校数字人建模教学中的应用

在影视、动漫、游戏等数字创意产业蓬勃发展的当下,超写实虚拟数字人凭借其高度逼真的形象,成为行业关注的焦点。无论是影视特效中栩栩如生的角色,还是游戏里精致的NPC,超写实虚拟数字人的制作都离不开先进的技术支撑。而3D人脸扫描…

你以为大数据只是存?其实真正的“宝藏”藏在这招里——数据挖掘!

你以为大数据只是存?其实真正的“宝藏”藏在这招里——数据挖掘! 曾经我也天真地以为,搞大数据就是会写几个SQL、部署个Hadoop集群,结果真到项目现场,甲方爸爸一句:“给我挖掘一下用户的购买意图”&#xf…

LeetCode经典题解:128、最长连续序列

“最长连续序列”是一道极具代表性的数组处理问题, 本文将带你从直观思路出发,逐步推导出最优解法,并通过场景化记忆技巧掌握核心逻辑。 一、题目描述 题目:给定一个未排序的整数数组 nums,找出数字连续的最长序列&…

电力分析仪的“双语对话”:CCLinkIE与Modbus TCP的无缝连接

在工业自动化领域,协议兼容性问题如同“方言壁垒”,让不同品牌、不同系统的设备难以高效协同。对于电力分析仪这类关键设备而言,如何打破CCLinkIE与Modbus TCP协议的“语言障碍”,已成为工程师优化系统集成的核心课题。 为何需要协…

暑假复习篇之文本编译器

一、知识点补充【在此次示例代码上显示的关键用法】知识点1、JMenuBar:菜单栏的容器,通常添加到JFrame的顶部。关键用法:add: 添加菜单到菜单栏2、JMenu:菜单条目(“文件” “编辑” 等)&#x…

Linux自动化构建工具(一)

🎁个人主页:工藤新一 🔍系列专栏:C面向对象(类和对象篇) 🌟心中的天空之城,终会照亮我前方的路 🎉欢迎大家点赞👍评论📝收藏⭐文章 文章目录Li…

目标检测流程图绘制

目标检测流程图绘制作为一个长期科研的苦命人,我一般采用Processon。 一、目标检测流程图绘制的 “量身定制” 体验 Processon 的绘图元素库对目标检测领域极度友好,从基础模块到复杂结构都能精准匹配:   核心组件一键调用:在右…

GitHub 趋势日报 (2025年07月09日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图970genai-toolbox780WebAgent650rustfs451prompt-eng-interactive-tutorial246ai-a…

多云环境下的成本管理挑战与对策 ——资源碎片化治理与华为CloudMatrix破局之道

一、危机:多云成本失控已成企业“隐形杀手”成本超支概率激增据Gartner 2024报告,采用多云策略的企业成本超支概率比单云企业高47%,主因资源碎片化导致的闲置浪费和管控失效。触目惊心的数据:73%企业云成本占营收超20%&#xff0c…

Linux的基础I/O

目录 1、理解“文件” 1.1 狭义理解 1.2 广义理解 1.3 文件操作的归类认知 1.4 系统角度 2、回顾C文件接口 2.1 文件的打开与关闭 2.2 文件的读写函数 2.3 stdin & stdout & stderr 3、系统文件I/O 3.1 一种传标志位的方式 3.2 文件的系统调用接口 3.2.1 o…