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) |
注意:
-
三角函数内的单位是弧度,不是角度
求sin30° (算出来的结果有误差)
SELECT SIN(RADIANS(30)) -
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开始
- INSERT函数,要在你好之前插入先生,1表示位置,0表示偏移量,所以0就是不替换。
| 函数 | 功能 | 用例 |
|---|---|---|
| SUBSTR | 截取字符串 | SUBSTR(“你好世界”, 3,4) |
| SUBSTRING | 截取字符串 | SUBSTRING(“你好世界”,3, 2) |
| LPAD | 左侧填充字符 | LPAD(“Hello”, 10, “*”) |
| RPAD | 右侧填充字符 | RPAD(“Hello”, 10, “*”) |
| TRIM | 去除首位空格 | TRIM(" 你好先生 ") |
注意:
- SUBSTR()中的3,4表示截取下标[3,4]的内容,闭区间
- SUBSTRING()中的3表示下标从3开始,2表示截取两个字符
- LPAD()和RPAD()的10表示原始字符串和填充的字符串加起来不到10个字符
例子: 保留手机后后四位,其余填充*
SELECT LPAD(SUBSTRING("1223456789", 8, 4), 11, "*");
例子: 截取人名的姓氏,其他用*填充
SELECT RPAD(SUBSTRING("李小龙", 1, 1), LENGTH("李小龙")/3, "*");
一个汉字在utf8编码下占3个字节因此/3
三、日期时间函数
3.1 获取系统日期时间的函数
- NOW() 获取系统日期和时间,格式yyyy-mm-dd hh:mm:ss
- CURDATE() 获取系统日期 ,格式yyyy-mm-dd
- 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) |
注意:
- 星期的占位符,小写w周日返回的是0;大写W返回的是英文的星期名称,如周一:Monday
- %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语句
-
IFNULL(表达式, 值)
-
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 表达式 THEN 值1WHEN 表达式 THEN 值2...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新旧服务比…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
