当前位置: 首页 > news >正文

mysql基本函数(五)

目录

    • 一、数字函数
    • 二、字符函数
    • 三、日期时间函数
      • 3.1 获取系统日期时间的函数
      • 3.2 日期格式化函数
      • 3.3 日期偏移计算
      • 3.4 日期之间相隔的天数
    • 四、条件函数
      • 4.1 IF语句
      • 4.2 条件语句

一、数字函数

函数功能用例
ABS绝对值ABS(-100)
ROUND四舍五入ROUND(4.62)
FLOOR向下取值FLOOR(9.9)
CEIL向上取整CEIL(3.2)
POWER幂函数POWER(2,3)
LOG对数函数LOG(7, 3)
LN对数函数LN(10)
SQRT开平方SQRT(9)
PI圆周率PI()
SIN三角函数SIN(1)
COS三角函数COS(1)
TAN三角函数TAN(1)
COT三角函数COT(1)
RADIANS角度转弧度RADIANS(30)
DEGREES弧度转角度DEGREES(1)

注意:

  1. 三角函数内的单位是弧度,不是角度

    求sin30° (算出来的结果有误差)

    SELECT SIN(RADIANS(30))
    
  2. 4.6288四舍五入要精确到后两位

    SELECT ROUND(4.6288*100)/100;
    

二、字符函数

函数功能用例
LOWER转小写字符LOWRE(ename)
UPPER转大写字符UPPER(ename)
LENGTH字符数量LENGTH(ename)
CONCAT连接字符串CONCAT(sal, “$”)
INSTR字符出现的位置INSTR(ename, “A”)
INSERT插入/替换字符INSERT(“你好”, 1, 0, “先生”)
REPLACE替换字符REPLACE(“你好先生”, “先生”, “女士”)

注意:

  1. 下标从1开始
  2. INSERT函数,要在你好之前插入先生,1表示位置,0表示偏移量,所以0就是不替换。
函数功能用例
SUBSTR截取字符串SUBSTR(“你好世界”, 3,4)
SUBSTRING截取字符串SUBSTRING(“你好世界”,3, 2)
LPAD左侧填充字符LPAD(“Hello”, 10, “*”)
RPAD右侧填充字符RPAD(“Hello”, 10, “*”)
TRIM去除首位空格TRIM(" 你好先生 ")

注意:

  1. SUBSTR()中的3,4表示截取下标[3,4]的内容,闭区间
  2. SUBSTRING()中的3表示下标从3开始,2表示截取两个字符
  3. LPAD()和RPAD()的10表示原始字符串和填充的字符串加起来不到10个字符

例子: 保留手机后后四位,其余填充*

SELECT LPAD(SUBSTRING("1223456789", 8, 4), 11, "*");

例子: 截取人名的姓氏,其他用*填充

SELECT RPAD(SUBSTRING("李小龙", 1, 1), LENGTH("李小龙")/3, "*");

一个汉字在utf8编码下占3个字节因此/3

三、日期时间函数

3.1 获取系统日期时间的函数

  1. NOW() 获取系统日期和时间,格式yyyy-mm-dd hh:mm:ss
  2. CURDATE() 获取系统日期 ,格式yyyy-mm-dd
  3. CURTIME() 获取系统时间,格式hh:mm:ss

3.2 日期格式化函数

DATE_FORMAT() 用于格式化日期,返回用户想要的日期格式

DATE_FORMAT(日期, 表达式)

例子:提取日期中的年份

SELECT ename, DATE_FORMAT(hiredate, "%Y") FROM t_emp;

占位符作用占位符作用
%Y年份%m月份
%d日期%w星期(数字)
%W星期(名称)%j本年第几天
%U本年第几周%H小时(24)
%h小时(12)%i分钟
%s%r时间(12)
%T时间(24)

注意:

  1. 星期的占位符,小写w周日返回的是0;大写W返回的是英文的星期名称,如周一:Monday
  2. %r返回的是hh:mm:ss

3.3 日期偏移计算

Mysql数据库里面,两个日期不能直接加减,日期也不能与数字加减

DATE_ADD()函数可以实现日期的便宜计算,而且单位很灵活

+-代表时间往后还是往前

DATE_ADD(日期, INTERVAL 偏移量 时间单位)

例子:

# 后15天的时间
SELECT DATE_ADD(NOW(), INTERVAL 15 DAY);
# 当前时间的前300min
SELECT DATE_ADD(NOW(), INTERVAL, -300 MINUTE);
# 6个月3天前的时间
SELECT DATE_ADD(DATE_ADD(NOW(), INTERVAL -6 MONTH), INTERVAL -3 DAY);

3.4 日期之间相隔的天数

DATEDIFF()函数计算两个日期之间相差的天数

DATEDIFF(日期, 日期)

四、条件函数

4.1 IF语句

  1. IFNULL(表达式, 值)

  2. IF(表达式, 值1, 值2) 类似三目运算符, 表达式为真返回值1,否则返回值2

例子: 公司发礼品,SALES部门发礼品A,其他部门发礼品B,打印每名员工获得的礼品

SELECT e.empno, e.ename, d.dname,IF(d.dname="SALES","礼品A", "礼品B")
FROM t_emp e JOIN t_dept d ON e.deptno=d.deptno;

4.2 条件语句

复杂的条件判断可以用条件语句来实现,比IF语句功能更强大

CASEWHEN 表达式 THEN1WHEN 表达式 THEN2...ELSE 值N
END

例子: 公司组织员工旅游,每个部门去的目的地不同,SALES部门去P1地点,ACCOUNT部门去P2,RESEARCH去P3,查询每名员工的旅游地点

SELECT e.empno, e.ename,CASEWHEN d.dname="SALES" THEN "P1"WHEN d.dname="ACCOUNT" THEN "P2"WHEN d.dname="RESEARCH" THEN "P3"END AS place
FROM t_emp e JOIN t_dept d ON e.deptno=e.deptno;

相关文章:

mysql基本函数(五)

目录 一、数字函数二、字符函数三、日期时间函数3.1 获取系统日期时间的函数3.2 日期格式化函数3.3 日期偏移计算3.4 日期之间相隔的天数 四、条件函数4.1 IF语句4.2 条件语句 一、数字函数 函数功能用例ABS绝对值ABS(-100)ROUND四舍五入ROUND(4.62)FLOOR向下取值FLOOR(9.9)CE…...

liteflow 2.10 配置中心简单记录

除nacos是一个key 同时管理chain和script node外,可以理解为配置文件整体放到一个key下nacos下的文件必须是xml格式,系统只实现了xml parser其它etcd,zk,Apollo 是两个namespace/path(chain及script node各一)下多个key,每个key对应一个chain/node所有配置中心的核心代码…...

【C++】引用、内联函数等

文章目录 一、引用1.引用概念2.引用特性3.引用时的权限问题4 .使用场景5 .引用和指针的联系与区别 二、内联函数1.概念2.注意点 三、auto关键字1.概念2.auto的使用细则 四、 基于范围的for循环1.概念2.范围for的使用条件 五、 指针空值nullptr1.概念2.使用注意 一、引用 1.引用…...

RocketMQ教程-(4)-主题(Topic)

本文介绍 Apache RocketMQ 中主题(Topic)的定义、模型关系、内部属性、行为约束、版本兼容性及使用建议。 定义​ 主题是 Apache RocketMQ 中消息传输和存储的顶层容器,用于标识同一类业务逻辑的消息。 主题的作用主要如下: 定义…...

睡眠健康数据分析

项目背景 背景描述 本数据集涵盖了与睡眠和日常习惯有关的诸多变量。如性别、年龄、职业、睡眠时间、睡眠质量、身体活动水平、压力水平、BMI类别、血压、心率、每日步数、以及是否有睡眠障碍等细节。 数据集的主要特征: 综合睡眠指标: 探索睡眠持续时…...

Spring Boot 3.x 系列【47】启动流程 | 启动监听器

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot版本3.1.0 源码地址:https://gitee.com/pearl-organization/study-spring-boot3 文章目录 1. 前言2. 核心类2.1 SpringApplicationRunListener2.2 ApplicationStartup2.3 ApplicationListener3. 执行流程3.1 获取监…...

【KD】知识蒸馏与迁移学习的不同

知识蒸馏与迁移学习的不同 (1)数据域不同. 知识蒸馏中的知识通常是在同一个目标数据集上进行迁移,而迁移学习中的知识往往是在不同目标的数据集上进行转移. (2)网络结构不同. 知识蒸馏的两个网络可以是同构或者异构的,而迁移学习通常是在单个网络上利用其…...

计算机内存中的缓存Cache Memories

这篇写一下计算机系统中的缓存Cache应用场景和实现方式介绍。 Memory hierarchy 在讲缓存之前,首先要了解计算机中的内存结构层次Memory hierarchy。也就是下图金字塔形状的结构。 从上到下,内存层次结构如下: 寄存器:这是计算机…...

Flask的send file和send_from_directory的区别

可以自行查看flask 文档。 send file高效; send from directory安全,且适用于静态资源交互。 都是实现相同的功能的。 send_file send_from_directory...

Java 队列

基本介绍 数组模拟队列 思路分析 代码实现 import java.util.Scanner;public class Test {public static void main(String[] args) {// 创建一个队列ArrayQueue queue new ArrayQueue(3);int select;Scanner scanner new Scanner(System.in);boolean loop true;while (lo…...

【算法基础:搜索与图论】3.6 二分图(染色法判定二分图匈牙利算法)

文章目录 二分图介绍染色法判定二分图例题:860. 染色法判定二分图 匈牙利匹配二分图最大匹配匈牙利匹配算法思想例题:861. 二分图的最大匹配 二分图介绍 https://oi-wiki.org/graph/bi-graph/ 二分图是图论中的一个概念,它的所有节点可以被…...

SpringMVC 怎么和 AJAX 相互调用的

通过 Jackson 框架就可以把 Java 里面的对象直接转化成 Js 可以识别的 Json 对象。 步骤如下 : a、加入 Jackson.jar b、在配置文件中配置 json 的映射 c、在接受 Ajax 方法里面可以直接返回 Object,List 等,但方法前面要加上ResponseBody 详细步骤: …...

UCDOS和WPS推动计算机领域的汉字化发展,中文编程该谁力扛大旗?

你还记得UCDOS吗? 从DOS时代过来的人,还知道UCDOS的,现在可能已经是中年人了! 当时,鲍岳桥的UCDOS可以称得上是中国的国产操作系统。 在Windows还没来得及进入中国市场时,UCDOS可以说是走向了巅峰时刻&a…...

golang+layui提升界面美化度--[推荐]

一、背景 golanglayui提升界面美化度--[推荐]; golang后端写的页面很难看,如何好看点呢,那就是layui https://layui.dev/ 也是一个简单上手容易使用的框架,类似jquery,对于后端开发来说满足使用需求 二、使用注意点…...

42. 接雨水

题目介绍 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3…...

Python学习阶段路线和内容

Python学习阶段路线和内容 这是我的看法和认识,供参考。 Python学习路线主要分为三个阶段:入门阶段、提高阶段和深入阶段。 入门阶段 入门阶段需要学习Python的基本语法,掌握变量和数据类型、条件语句和循环语句、函数和模块等内容。并通过…...

RocketMQ教程-安装和配置

Linux系统安装配置 64位操作系统,推荐 Linux/Unix/macOS 64位 JDK 1.8 Maven3.0 yum 安装jdk8 yum 安装maven 1.下载安装Apache RocketMQ RocketMQ 的安装包分为两种,二进制包和源码包。 点击这里 下载 Apache RocketMQ 5.1.3的源码包。你也可以从这…...

【LeetCode】55.跳跃游戏

题目 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 示例 1: 输入:nums [2,3,1,1,4] 输出:true 解释:可以…...

Docker学习路线12:开发者体验

到目前为止,我们只讨论了使用Docker来部署应用程序。然而,Docker也是一个极好的用于开发应用程序的工具。可以采用一些不同的建议来改善开发体验。 在应用程序中使用docker-compose以方便开发。使用绑定挂载将本地代码挂载到容器文件系统中,…...

后端服务迁移方案及过程记录

阶段时序动作双写数据对比1新rdb集群上线双写数据对比2新服务上线,无流量双写数据对比2后端自己发起的流程比如job,新服务上线一份新的,独立运行双写数据对比2消费二方mq,新服务使用新的消费组消费原有消息双写数据对比3新旧服务比…...

知识点1:ROS文件系统

学习资源为Autolabor教程一、ROS文件系统指ROS源码文件存储在硬盘中的形式。相当于文件结构WorkSpace --- 自定义的工作空间|--- build:编译空间,用于存放CMake和catkin的缓存信息、配置信息和其他中间文件。|--- devel:开发空间,用于存放编译后生成的目…...

如何比较不同注册商的域名注册价格_如何查看域名的SEO数据和排名信息

如何比较不同注册商的域名注册价格 在互联网时代,域名已经成为网站的“门面”,是网站建设的重要一步。不同注册商的域名注册价格差异较大,如何在保证性价比的前提下选择合适的注册商成为了一个重要的问题。本文将详细探讨如何比较不同注册商…...

高效跨平台喜马拉雅音频下载器:Go+Qt5技术架构深度解析

高效跨平台喜马拉雅音频下载器:GoQt5技术架构深度解析 【免费下载链接】xmly-downloader-qt5 喜马拉雅FM专辑下载器. 支持VIP与付费专辑. 使用GoQt5编写(Not Qt Binding). 项目地址: https://gitcode.com/gh_mirrors/xm/xmly-downloader-qt5 喜马拉雅FM作为国…...

标准、规范、规程有何区别与联系

标准、规范、规程有何区别与联系什么是标准:标准作为标准化的核心,其定义和解释也经历了一个较长的发展时期,最有影响的有三个:一是1934年盖拉德在其《工业标准化原理与应用》一书中对标准所作的定义,这也是世界上最早…...

单片机老鸟的汇编优化:给那个255上限的脉冲计数器升个级

单片机老鸟的汇编优化:给那个255上限的脉冲计数器升个级 在嵌入式开发领域,脉冲计数是一个经典而实用的功能模块。许多开发者都曾用51单片机实现过基础版本——通过T1计数器接收脉冲信号,将计数值显示在数码管上。但当我们翻看这些"教科…...

数学周刊第14期(2026年03月30日-04月06日)中国数学家王虹再获殊荣

目录王虹获纽约大学最高荣誉,距菲尔兹奖仅一步之遥香港科大团队首创代码驱动系统参考资料王虹获纽约大学最高荣誉,距菲尔兹奖仅一步之遥 当地时间4月2日,美国纽约大学柯朗数学科学研究所宣布,中国数学家王虹获评该校“银教授”&am…...

1984-2024年中国10米分辨率城市土地利用栅格数据(商业、公服、居住等9类)

城市土地利用是刻画城市扩张与功能空间演化的重要基础信息。长时序、高分辨率且具有跨期可比性的城市土地利用数据,已成为城市扩张诊断、空间结构演化研究、国土空间规划评估与生态环境效应分析的重要支撑。而现有城市土地利用数据往往存在时间跨度不足、历史时期分…...

革新性智能漫画翻译工具:解决本地化效率痛点,释放创作价值

革新性智能漫画翻译工具:解决本地化效率痛点,释放创作价值 【免费下载链接】BallonsTranslator 深度学习辅助漫画翻译工具, 支持一键机翻和简单的图像/文本编辑 | Yet another computer-aided comic/manga translation tool powered by deeplearning 项…...

从协议本质到架构落地:WebSocket与MQTT在实时通信中的融合实践指南

1. 为什么需要WebSocket和MQTT的融合架构 第一次接触实时通信系统开发时,我天真地以为用WebSocket就能搞定所有需求。直到项目上线后遇到用户量激增,才发现单纯的WebSocket架构在扩展性和可靠性上存在明显短板。后来尝试引入MQTT协议,才真正解…...

Modelsim 10.7/2019.5 破解后启动报错:HostID格式异常排查与修复

1. 破解后启动报错的典型现象 最近在折腾Modelsim 10.7和2019.5版本时,遇到了一个让人抓狂的问题:明明按照网上的破解教程一步步操作,环境变量也设置正确,但启动软件时还是弹出了license报错。这个错误提示特别有意思,…...