【MySQL的内置函数】

news2024/12/28 3:00:48

文章目录

  • 一、日期函数
    • 1.current_date()
    • 2.current_time()
    • 3.current_timestamp
    • 4. date_add 穿越未来
    • 5.date_sub 回到过去
    • 6.datediff
    • 案例
  • 二、字符串函数
    • 2.1charset
    • 2.2 concat ——拼接字符串
    • 2.3 ucase——转化成大写
    • 2.4 lcase——转化成小写
    • 2.5 left()
    • 2.6replace()
    • 2.7substring()
    • 2.8 ltrim 和rtrim
    • 使用案例
  • 三、数学函数
  • 四、其他函数
    • user()
    • md5()
    • ifnull(val1,val2)



一、日期函数

在这里插入图片描述

1.current_date()

这是一个日期函数,表示当前的日期。

在这里插入图片描述

2.current_time()

这是一个时间函数,表示当前时间。
在这里插入图片描述
注意区分两个概念:日期和时间。

一般情况下:日期指的是,年月日。
时间指的是,时分秒。

3.current_timestamp

时间戳。
获取日期和时间,也就是详细到年月日,时分秒。
在这里插入图片描述

4. date_add 穿越未来

在日期的基础上,加上一个日期。
interval:时间间隔。

mysql> select date_add(‘2024-5-11’,interval 100 day);
在这里插入图片描述
还可以获取当前时间,然后添加上year/month/day/hour/minute/second
在这里插入图片描述

5.date_sub 回到过去

在日期的基础上,减去一个日期。
interval:时间间隔。

mysql> select date_sub(‘2024-5-11’,interval 100 day);

在这里插入图片描述
还可以获取当前时间,然后添加上year/month/day/hour/minute/second。
在这里插入图片描述

6.datediff

计算两个日期之间相差多少天。在这里插入图片描述

案例

创建一张表,记录生日
mysql> create table tmp(
-> id bigint primary key auto_increment,
-> birthday date
-> );

向表中插入一些数据:

mysql> insert into tmp(birthday) values(current_date());
mysql> insert into tmp(birthday) values(‘1949-10-01’);
mysql> insert into tmp(birthday) values(‘2049-10-01’);
mysql> insert into tmp(birthday) values(current_time());
mysql> insert into tmp(birthday) values(date(current_time()));

在这里插入图片描述
可以看到,就算插入的是当前时间,显示时仍然是以日期的方式显示的。
此时可以认为:

  • 1.所有的函数,底层都是用同一个日期函数。
  • 2.MySQL有一点小bug,时间能插入日期类型的数据中。

案例2:

创建一个留言表
mysql> create table msg(
id int primary key auto_increment,
content varchar(100) not null, senddtime datetime
);

插入数据:
在这里插入图片描述

现在有一个要求,请查询20分钟内发布过的消息。

在这里插入图片描述

mysql> select id,content,sendtime from msg where sendtime > date_sub(now(),interval 30 minute);
在这里插入图片描述
另一种查询方法也可以:
mysql> select id,content,sendtime from msg where now() < date_add(sendtime,interval 30 minute);

二、字符串函数

在这里插入图片描述

2.1charset

获取msp表的content列的字符集.

mysql> select charset(content) from msg;

在这里插入图片描述

2.2 concat ——拼接字符串

这个函数就像c语言学过的strcat函数,将字符串拼接。
在这里插入图片描述

2.3 ucase——转化成大写

mysql> select ucase(‘hello,你好,worldasddd’);
在这里插入图片描述

2.4 lcase——转化成小写

mysql> select lcase(‘hello,你好,BBBBBBBBBBd’);

在这里插入图片描述

2.5 left()

left(string, length);
从string左边开始提取length个字符。

在这里插入图片描述

2.6replace()

replace(string,src,dst);

在string字符串中,查找src字符串,找到并替换成dst字符串。

2.7substring()

在这里插入图片描述

substring(str,position,length);
从str的position位置开始,取length个字符。

2.8 ltrim 和rtrim

ltrim去除字符串左边的空格
rtrim去除右边的空格。

trim去除左右两边的空格。

但是不去除中间的空格。

使用案例

要求显示exam_result表中的信息,显示格式:“XXX的语文是XXX分,数学XXX分,英语XXX分”

mysql> select concat(‘考生姓名:’, name, ‘恭喜你,你的总分是:’,chinese+math+english,’ 语文成绩:‘,chinese, ’ 数学成绩:’ ,math,’ 英语成绩: ',english) as 分数 from exam_result;

求学生表中学生姓名占用的字节数.

mysql> select name,length(name) from exam_result;

在这里插入图片描述
原因是,使用的字符编码默认是utf8的。
一个汉字占3个字节。

注意:字符和数字占1字节。

mysql> select length(‘abc123’);

在这里插入图片描述

将EMP表中所有名字中有S的替换成’上海’
mysql> select ename,replace(ename,‘S’,‘上海’) from emp;

在这里插入图片描述

截取EMP表中ename字段的第二个到第三个字符。
mysql> select substring(ename,2,2) from emp;
在这里插入图片描述

以首字母小写的方式显示所有员工的姓名
mysql> select ename, concat( substring(lcase(ename),1,1), substring(ename,2)) from emp ;
在这里插入图片描述

注意:上面的案例,都没有修改表格本身,而是将满足条件的表内容提取出来并修改,再聚合展现出来。
对表格本身的内容没有修改。
想要修改表格本身的内容,一般用update才会修改。

三、数学函数

在这里插入图片描述
三个取整方式:
向上取整,向下取整,0向取整。

在这里插入图片描述

ceiling函数:向上取整。ceiling翻译:天花板。
floor函数:向下取整。floor翻译:地板。
在这里插入图片描述
在这里插入图片描述

四、其他函数

user()

当前用户。

md5()

语法:md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串。

形成一个摘要,产生等长字符串。

在这里插入图片描述

不管这个参数str有多短多长,都会形成一个固定的摘要。
在这里插入图片描述

ifnull(val1,val2)

判断第一个val1是不是null,如果第一个是null,返回val2。
如果第一个不是null,返回val1。

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

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

相关文章

vue3 element plus el-date-picker组件在日期上做标识

1.先看效果图,带红点的就是我要做标识的日期 2.直接把代码拿出来就可以用 (1)html部分 <el-date-pickerv-model"startTime"type"datetime"placeholder"选择开始日期"format"YYYY-MM-DD HH:mm"value-format"YYYY-MM-DD HH:mm…

测试新人常问:如何开始自动化测试,必须知道的10点!

随着互联网技术的发展&#xff0c;无论哪个公司&#xff0c;哪个团队都在谈论自动化测试、动手实现自动化测试&#xff0c;从而让测试显得更加“高大上”。 那么是不是所有的业务都适合自动化&#xff1f;是不是自动化做的越多&#xff0c;效果越好呢&#xff1f;下面就自己一…

物联网平台之单体架构

介绍本文主要介绍平台的单体架构&#xff0c;包括各个组件之间的数据流描述以及所做的一些架构选择。在单体架构模式下&#xff0c;所有 ThingsKit 组件都在单个 Java 虚拟机 (JVM) 中启动&#xff0c;并共享相同的操作系统资源。由于 ThingsKit 是用 Java 编写的&#xff0c;因…

企业大文件传输之安全数据传输的重要性

企业数据安全性的维护直接关系到企业的市场竞争力乃至其生存的根基。数据的保护不仅涉及到保护企业的商业秘密&#xff0c;也关乎到客户隐私的保护&#xff0c;更触及到国家安全的敏感层面。因此&#xff0c;保障数据在传输过程中的安全&#xff0c;成为了每个企业和组织必须面…

【湿地探秘】守护蓝色星球的绿色之肾

在地球的广阔画卷中&#xff0c;湿地犹如镶嵌其中的翡翠&#xff0c;不仅孕育着丰富的生物多样性&#xff0c;更是自然界不可或缺的调节器。今天&#xff0c;让我们一同深入了解湿地的基本概念、我国湿地的概貌、湿地的多样类型&#xff0c;以及保护湿地对于人类和地球的深远意…

2024.5.8 关于 SpringCloud —— Ribbon 的基本认知

目录 Ribbon 负载均衡原理 工作流程 Ribbon 负载均衡规则 Ribbon 负载均衡自定义化 代码方式修改规则 配置文件方式修改规则 小总结 Ribbon 设定饥饿加载 Ribbon 负载均衡原理 工作流程 order-service 使用 RestTemplate 发送请求&#xff0c;随后该请求将会被 Ribbon 所…

探针流量检测与回溯分析,解密AnaTraf网络流量分析仪的神奇魅力

目录 导言 概述 流量检测探针 流量回溯分析 网络故障解决案例 了解更多 导言 在当今互联网时代&#xff0c;网络性能监测与诊断成为企业发展的关键。为了解决网络故障和提升网络性能&#xff0c;AnaTraf网络流量分析仪应运而生。本文将详细介绍AnaTraf的功能和优势&#…

Python 框架安全:SSTI 模板注入漏洞测试.

什么是 SSTI 模板注入 SSTI (Server-Side Template Injection) 是一种Web应用程序安全漏洞&#xff0c;它发生在应用程序使用模板引擎渲染用户输入时。当应用程序将用户输入直接插入到模板中而不进行充分的过滤和验证时&#xff0c;就可能导致SSTI漏洞。攻击者可以利用这个漏洞…

制造业数字化转型解决方案及应用(125页PPT)

一、资料介绍 《制造业数字化转型解决方案及应用》是一份内容丰富、深入剖析制造业数字化转型的125页PPT资料。这份资料以“智能制造、制造业数字化转型、制造业数字化转型案例”为关键词&#xff0c;全面展现了制造业数字化转型的核心理念、解决方案以及实际应用案例。 关注…

Vue3 - 前端项目代码防止被调试/被爬,阻止浏览器F12开发者工具

项目背景 大家都知道浏览器的开发者工具能干啥&#xff0c;正经的用法&#xff1a;开发时调试代码逻辑&#xff0c;修改布局样式&#xff1b;不正经的用法&#xff1a;改改元素骗骗人&#xff0c;找找网站接口写爬虫&#xff0c;逆向js破解加密等等&#xff0c;所以说前端不安…

MySQL数据库的安装和部署

1.数据库的相关介绍 关系型数据库管理系统&#xff1a;&#xff08;英文简称&#xff1a;RDBMS&#xff09; 为我们提供了一种存储数据的特定格式&#xff0c;所谓的数据格式就是表&#xff0c; 在数据库中一张表就称为是一种关系. 在关系型数据库中表由两部分组成&#xf…

油泼辣子在食品类别可以申请成商标不!

前阵韩国人在美国申请“chili crunch”油泼辣子作为商标&#xff0c;还准备禁止华人餐馆使用投诉侵权并索赔&#xff0c;普推知产老杨在USPTO上面检索发现&#xff0c;这个人申请的主要是30类方便食品的调味品&#xff0c;商标分类是全球通用的。 商标名称不能申请本类所属的通…

详解Python测试框架Pytest的参数化

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 上篇博文介绍过&#xff0c;Pytest是目前比较成熟功能齐全的测试框架&#xff0c;使用率肯定也不…

ECharts系列:基本使用及配置项

目录 基本使用 配置项的写法与位置 配置项option包含属性 各个配置项属性大全 基本使用 在阅读本篇文章时请参考ECharts官网地址中的内容配合了解 首先我们知道ECharts图表中有许多类型&#xff0c;如折线图、柱状图、饼形图等&#xff0c;下面我以折线图为例讲解ECharts图…

[AutoSar]lauterbach_001_ORTI_CPUload_Trace

目录 关键词平台说明一、ORTI概述二、ORTI文件的生成三、ORTI文件的导入四、Trace 功能4.1 Trace 功能菜单介绍4.2 Trace功能的配置4.3 Trace MCDS 设置4.4 Task Switches断点的设置4.5 Trace 数据的录取4.6 CPU 负载和Task调度的查看 关键词 嵌入式、C语言、autosar、OS、BSW…

让AI触手可及丨2024高通美格智能边缘智能技术进化日隆重举行

5月9日&#xff0c;高通技术公司携手美格智能联合举办了主题为“让智能计算无处不在&#xff0c;2024高通&美格智能边缘智能技术进化日”在深圳隆重举行。大会现场&#xff0c;智能物联网行业合作伙伴齐聚一堂&#xff0c;多位行业资深专家围绕AI与通讯、智能计算、边缘大模…

Redis 基础之常用数据类型及命令

常用数据类型及命令 String&#xff08;字符串&#xff09;Hash&#xff08;哈希&#xff09;List&#xff08;列表&#xff09;Set&#xff08;集合&#xff09;zset ( sorted set&#xff1a;有序集合 )Redis setbit 命令HyperLogLogs ( 基数统计 ) Redis 比 Memcached 更优秀…

命名规范总结Java

小驼峰命名 主要用于变量和方法的命名&#xff0c;当标识符是一个单词时首字母小写&#xff0c;当标识符为多个单词时第一个单词首字母小写&#xff0c;其他单词首字母大写 大驼峰命名 主要用于类(Class)名等。标识符各个单词首字母大写。 全部大写命名 常量名 全部小写命…

Blazor入门-调用js+例子

参考&#xff1a; Blazor入门笔记&#xff08;3&#xff09;-C#与JS交互 - 半野 - 博客园 https://www.cnblogs.com/zxyao/p/12638233.html 本地环境&#xff1a;win10, visual studio 2022 community 其他例子写了再更新&#xff01; 调用js函数并传递参数 首先要加上injec…

品鉴中的挑战与探索:如何勇敢尝试不同类型的云仓酒庄雷盛红酒

品鉴云仓酒庄雷盛红酒不仅是一种感官的享受&#xff0c;更是一种挑战与探索的过程。不同类型的云仓酒庄雷盛红酒具有各自与众不同的风味和特点&#xff0c;通过勇敢尝试不同类型的红酒&#xff0c;我们可以拓展自己的品鉴视野&#xff0c;发现更多未知的美妙滋味。 首先&#x…