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新旧服务比…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
