[MySQL][内置函数][日期函数][字符串函数][数学函数]详细讲解

news2024/12/23 13:51:54

目录

  • 1.日期函数
    • 1.基础语法
    • 2.示例1
    • 3.示例2
  • 2.字符串函数
    • 1.基础语法
    • 2.示例
  • 3.数学函数
    • 1.基础语法
    • 2.示例
  • 4.其他函数


1.日期函数

1.基础语法

请添加图片描述

  • 日期时间在MYSQL中是区分开的
    • 日期:年月日
    • 时间:时分秒
  • 获得年月日
    select current_date();
     +----------------+
     | current_date() |
     +----------------+
     | 2024-01-24     |
     +----------------+
    
  • 获得时分秒
    select current_time();
     +----------------+
     | current_time() |
     +----------------+
     | 13:51:21       |
     +----------------+
    
  • 获得时间戳
    select current_timestamp();
     +---------------------+
     | current_timestamp() |
     +---------------------+
     | 2024-01-24 13:51:48 |
     +---------------------+
    
  • 在日期的基础上加日期
    select date_add('2024-01-14', interval 10 day);
     +-----------------------------------------+
     | date_add('2024-01-14', interval 10 day) |
     +-----------------------------------------+
     | 2024-01-24                              |
     +-----------------------------------------+
    
  • 在日期的基础上减去时间
    select date_sub('2024-01-24', interval 2 day);
    +----------------------------------------+
    | date_sub('2024-01-24', interval 2 day) |
    +----------------------------------------+
    | 2024-01-22                             |
    +----------------------------------------+
    
  • 计算两个日期之间相差多少天
    +-------------------------------+
    | datediff(now(), '1949-10-01') |
    +-------------------------------+
    |                         27143 |
    +-------------------------------+
    

2.示例1

  • 创建一张表,记录生日,
    create table tmp(
    id int primary key auto_increment,
    birthday date
    );
    
  • 添加当前日期
    insert into tmp(birthday) values(current_date());
    mysql> select * from tmp;
    +----+------------+
    | id | birthday   |
    +----+------------+
    | 1  | 2024-01-24 |
    +----+------------+
    

3.示例2

  • 创建一个留言表
    mysql> create table msg (
    	id int primary key auto_increment,
    	content varchar(30) not null,
    	sendtime datetime
    );
    
  • 插入数据
    mysql> insert into msg(content,sendtime) values('hello1', now());
    mysql> insert into msg(content,sendtime) values('hello2', now());
    
    mysql> select * from msg;
    +----+---------+---------------------+
    | id | content | sendtime            |
    +----+---------+---------------------+
    | 1  | hello1  | 2024-01-24 14:12:20 |
    | 2  | hello2  | 2024-01-24 14:13:21 |
    +----+---------+---------------------+
    
  • 显示所有留言信息,发布日期只显示日期,不用显示时间
    select content,date(sendtime) from msg;
    
  • 请查询在2分钟内发布的帖子
    • 理解:以下两种写法意思相同
      • msg_time > cur_time - 2
      • msg_time + 2 > cur_time
        ![[Pasted image 20240225181330.png]]
    select * from msg where date_add(sendtime, interval 2 minute) > now();  
    select * from msg where date_sub(now(), interval 2 minute) < sendtime;
    

2.字符串函数

1.基础语法

请添加图片描述

  • 注意:
    • length函数返回字符串长度,以字节为单位
    • 如果是多字节字符则计算多个字节数;如果是单字节字符则算作一个字节
      • 比如:字母,数字算作一个字节,中文表示多个字节数(与字符集编码有关)

2.示例

  • 获取emp表的ename列的字符集
    select charset(ename) from EMP;
    
  • 要求显示exam_result表中的信息,显示格式:“XXX的语文是XXX分,数学XXX分,英语XXX分”
    select concat(name, '的语文是', chinese, '分,数学是', math, '分') as '分数' from student;
    
  • 求学生表中学生姓名占用的字节数
    select length(name), name from student;
    
  • 将EMP表中所有名字中有S的替换成’上海’
    select replace(ename, 'S', '上海'), ename from EMP;
    
  • 截取EMP表中ename字段的第二个到第三个字符
    select substring(ename, 2, 2), ename from EMP;
    
  • 以首字母小写的方式显示所有员工的姓名
    select concat(lcase(substring(ename, 1, 1)), substring(ename,2)) from EMP;
    

3.数学函数

1.基础语法

请添加图片描述

  • 关于ceilingfloor
    • C语言中的取整为**0向取证**
    • ceiling是向+∞取整
    • floor是向-∞取整

2.示例

  • 绝对值
    select abs(-100.2);
    
  • 向上取整
    select ceiling(23.04);
    
  • 向下取整
    select floor(23.7);
    
  • 保留2位小数位数(小数四舍五入)
    select format(12.3456, 2);
    
  • 产生随机数
    select rand();
    

4.其他函数

  • user() 查询当前用户
    select user();
    
  • **md5(str)**对一个字符串进行md5摘要,摘要后得到一个32位字符串
    select md5('admin')
    +----------------------------------+
    | md5('admin')                     |
    +----------------------------------+
    | 21232f297a57a5a743894a0e4a801fc3 |
    +----------------------------------+
    
  • **database()**显示当前正在使用的数据库
    select database();
    
  • **password()**函数,MySQL数据库使用该函数对用户加密
    select password('root');
    +-------------------------------------------+
    | password('root')                          |
    +-------------------------------------------+
    | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
    +-------------------------------------------+
    
  • ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值
    • 类似C语言中的三目运算符 a?b:c --> (val1 == null) ? val2 : val1
    select ifnull('abc', '123');
    +----------------------+
    | ifnull('abc', '123') |
    +----------------------+
    | abc                  |
    +----------------------+
    1 row in set (0.01 sec)
    
    select ifnull(null, '123');
    +---------------------+
    | ifnull(null, '123') |
    +---------------------+
    | 123                 |
    +---------------------+
    1 row in set (0.00 sec)
    

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

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

相关文章

Open3D 最小二乘法拟合点云平面

目录 一、概述 1.1最小二乘法原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始点云 3.2matplotlib可视化 3.3平面拟合方程 前期试读&#xff0c;后续会将博客加入该专栏&#xff0c;欢迎订阅 Open3D点云算法与点云深度学习…

opencv学习:图像视频的读取截取部分图像数据颜色通道提取合并颜色通道边界填充数值计算图像融合

一、计算机眼中的图像 1.图像操作 构成像素点的数字在0~255之间 RGB叫做图像的颜色通道 h500&#xff0c;w500 2.灰度图像 3. 彩色图像 4.图像的读取 5.视频的读取 cv2.VideoCapture()--在OpenCV中&#xff0c;可以使用VideoCapture来读取视频文件&#xff0c;或是摄像头数…

前缀和算法——部分OJ题详解

&#xff08;文章的题目解释可能存在一些问题&#xff0c;欢迎各位小伙伴私信或评论指点&#xff08;双手合十&#xff09;&#xff09; 关于前缀和算法 前缀和算法解决的是“快速得出一个连续区间的和”&#xff0c;以前求区间和的时间复杂度是O(N)&#xff0c;使用前缀和可…

关于springboot的@DS(““)多数据源的注解无法生效的原因

对于com.baomidou.dynamic.datasource.annotation的DS注解&#xff0c;但凡有一个AOP的修改都会影响到多数据源无法生效的问题&#xff0c;本次我是添加了方法上添加了Transactional&#xff0c;例如下图&#xff1a; 在方法上写了这个注解&#xff0c;会影响到DS("db2&qu…

MODEL4高性价比工业级HMI芯片在喷码机解决方案中的应用

一、概述 随着工业自动化与智能化的发展&#xff0c;喷码机作为标识设备在各行各业中扮演着至关重要的角色。为满足市场对于高效、精准、灵活喷码的需求&#xff0c;我们推出了基于MODEL4工业级HMI芯片的喷码机解决方案。 该方案集成了高性能国产嵌入式64位RISC-V内核芯片组&…

<数据集>铁轨缺陷检测数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;844张 标注数量(xml文件个数)&#xff1a;844 标注数量(txt文件个数)&#xff1a;844 标注类别数&#xff1a;3 标注类别名称&#xff1a;[Spalling, Squat, Wheel Burn] 序号类别名称图片数框数1Spalling3315522…

集线器、交换机、路由器的区别,冲突域、广播域

冲突域 定义&#xff1a;同一时间内只能有一台设备发送信息的范围。 分层&#xff1a;基于OSI模型的第一层物理层。 广播域 定义&#xff1a;如果某个站点发出一个广播信号&#xff0c;所有能接受到这个信号的设备的范围称为一个广播域。 分层&#xff1a;基于OSI模型的第二…

绿色水利,智慧未来:数字孪生技术在智慧水库建设中的应用,助力实现水资源的可持续利用与环境保护的双赢

本文关键词&#xff1a;智慧水利、智慧水利工程、智慧水利发展前景、智慧水利技术、智慧水利信息化系统、智慧水利解决方案、数字水利和智慧水利、数字水利工程、数字水利建设、数字水利概念、人水和协、智慧水库、智慧水库管理平台、智慧水库建设方案、智慧水库解决方案、智慧…

【Python】open()函数的全面解析:如何读取和写入文件

文章目录 1. 基本用法&#xff1a;打开文件2. 不同模式的使用3. 文件读取方法3.1 readline()方法3.2 readlines()方法 4. 上下文管理器5. 错误处理6. 小结 在编程过程中&#xff0c;文件操作是一个非常常见的任务&#xff0c;而Python的open()函数是进行文件操作的基础。通过op…

Sparse4D-v3:稀疏感知的性能优化及端到端拓展

极致的感知性能与极简的感知pipeline一直是牵引我们持续向前的目标。为了实现该目标&#xff0c;打造一个性能优异的端到端感知模型是重中之重&#xff0c;充分发挥深度神经网络数据闭环的作用&#xff0c;才能打破当前感知系统的性能上限&#xff0c;解决更多的corner case&am…

分布式 I/O 系统Modbus TCP 耦合器BL200

BL200 耦合器是一个数据采集和控制系统&#xff0c;基于强大的 32 位微处理器设计&#xff0c;采用 Linux 操作系统&#xff0c;可以快速接入现场 PLC、SCADA 以及 ERP 系统&#xff0c; 内置逻辑控制、边缘计算应用&#xff0c;支持标准 Modbus TCP 服务器通讯&#xff0c;以太…

Ubuntu Desktop Docker 配置代理

Ubuntu Desktop Docker 配置代理 主要解决 docker pull 拉取不了镜像问题. Docker Desktop 配置代理 这个比较简单, 直接在 Docker Desktop 里设置 Proxies, 示例如下: http://127.0.0.1:7890 Docker Engine 配置代理 1.Docker Engine 使用下面配置文件即可, root 用户可…

Java面试八股之简述单例redis并发承载能力

简述单例redis并发承载能力 单例Redis实例的并发承载上限受到多种因素的影响&#xff0c;包括但不限于硬件性能、网络条件、数据集大小、操作类型以及Redis自身的配置。以下是几个关键因素的详细说明&#xff1a; 硬件性能&#xff1a; CPU&#xff1a;Redis主要依赖于CPU的…

服务器基础1

服务器基础复习01 1.环境部署 系统&#xff1a;华为欧拉系统 网络简单配置nmtui 因为华为欧拉系统密码需要复杂度 所以我们可以进入后更改密码 echo 123 | passwd --stdin root也可以 echo "root:123" | chpasswd2.关闭防火墙&#xff0c;禁用SElinux 首先先关…

BlueToothLE 拓展中writeBytesWithResponse与writeBytes有什么区别?

writeBytesWithResponse与writeBytes有什么区别&#xff1f; 根据文档&#xff0c;有WithRespon的&#xff0c;会触发一个 BytesWritten 事件&#xff0c;另一个不触发这个事件&#xff1a;App Inventor 2 低功耗蓝牙 BlueToothLE 拓展 App Inventor 2 中文网

SQl server 练习3

课后作业 在homework库下执行&#xff1a; CREATE TABLE user_profile_2 ( id int NOT NULL, device_id int NOT NULL, gender varchar(14) NOT NULL, age int , university varchar(32) NOT NULL, gpa float, active_days_within_30 float, question_cnt float, answer_cnt fl…

昇思25天学习打卡营第14天|DCGAN 与漫画头像生成:原理剖析与训练实战

目录 数据集下载 数据处理 构建生成器 构建判别器 模型训练 结果展示 数据集下载 首先尝试卸载已安装的 mindspore 库&#xff0c;然后通过指定的镜像源安装特定版本&#xff08;2.2.14&#xff09;的 mindspore 库。从指定的 URL 下载一个 zip 文件到当前目录下的 ./faces…

kubernetes k8s Deployment 控制器配置管理 k8s 红蓝部署 金丝雀发布

目录 1、Deployment控制器&#xff1a;概念、原理解读 1.1 Deployment概述 1.2 Deployment工作原理&#xff1a;如何管理rs和Pod&#xff1f; 2、Deployment资源清单文件编写技巧 3、Deployment使用案例&#xff1a;创建一个web站点 4、Deployment管理pod&#xff1a;扩…

信创学习笔记(三),信创之操作系统OS思维导图

创作不易 只因热爱!! 热衷分享&#xff0c;一起成长! “你的鼓励就是我努力付出的动力” 一. 回顾信创CPU芯片 1. x86应用生态最丰富, 海光(3,5,7)授权较新,无桌面授权,多用于服务器 兆芯(ZX, KX, KH)授权较早期. 2. ARMv8移动端应用生态丰富, 华为鲲鹏(9) ,制裁中&#xff0c;…

JWT令牌详细解析

JWT令牌 前言一、JWT是什么&#xff1f;二、JWT与传统CookieSession的对比三、JWT1. JWT的功能2. JWT的结构3. JWT的使用 前言 主要介绍了SpringBoot集成JWT令牌详细说明,JWT方式校验方式更加简单便捷化&#xff0c;无需通过redis缓存&#xff0c;而是直接根据token取出保存的…