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

【MySQL】常用内置函数:数值函数 / 字符串函数 / 日期函数 / 其他函数

文章目录

  • 数值函数
    • round():四舍五入
    • ceiling():上限函数
    • floor():地板函数
    • abs():计算绝对值
    • rand():生成0-1的随机浮点数
  • 字符串函数
    • length():获取字符串中的字符数
    • upper() / lower():将字符串转化成大小写
    • trim/ltrim/rtrim:删除字符串中不需要的空格
    • left /right /substr:返回字符串相应位置字符
    • locate:返回第一个字符或一串字符匹配位置
    • replace:替换字符或字符串
    • concat:串联两个字符串
  • 日期函数
    • now() / curdate() / curtime():返回当前的日期和时间 / 返回当前日期 / 返回当前时间
    • year(now()) / month() / day() / hour() / minute() / second() 提取特定日期或时间
    • dayname(now()) / monthname():返回字符串类型的星期和月份
    • extract(day from now()):返回指定的时间或日期
    • 练习1
    • date_format():日期格式函数
    • time_format():时间格式函数
    • date_add():给日期时间值增加日期,写负值也能减
    • date_sub():给日期时间值减去日期,写负值也能加
    • datediff():返回两个日期的天数间隔
    • time_to_sec():返回从零点计算的秒数
  • 其他函数
    • ifnull()
    • coalesce()
    • 练习1
    • if():单一表达式
    • 练习2
    • case运算符:多个表达式
    • 练习3

数值函数

  • 可查看所有的数值函数

round():四舍五入

  • 参数1
select round(5.37)

运行结果
在这里插入图片描述

  • 参数2,可指定四舍五入的精度
select round(5.37,1)

运行结果
在这里插入图片描述

ceiling():上限函数

  • 返回大于或等于这个数字的最小整数
select ceiling(5.1)

运行结果
在这里插入图片描述

floor():地板函数

  • 返回小于或等于这个数字的最大整数
select floor(5.8);

运行结果
在这里插入图片描述

abs():计算绝对值

select abs(-3.5);

运行结果
在这里插入图片描述

rand():生成0-1的随机浮点数

select rand()

运行结果
在这里插入图片描述

字符串函数

  • 可查看所有的字符串函数

length():获取字符串中的字符数

select length('xuwuuuu')

运行结果
在这里插入图片描述

upper() / lower():将字符串转化成大小写

select upper('xuwuuuu');

运行结果
在这里插入图片描述

select lower('XUWUUUU')

运行结果
在这里插入图片描述

trim/ltrim/rtrim:删除字符串中不需要的空格

  • ltrim():移除字符串左侧的空白字符或其他预定义字符
select ltrim('   xuwuuu')

在这里插入图片描述

  • rtirm():移除字符串右侧的空白字符或其他预定义字符
select rtrim('xuwuuu   ');

在这里插入图片描述

  • trim():删除所有前导或尾随空格,但不能删除字符串中间的空格
select trim('  xuwuuu  ')

在这里插入图片描述

left /right /substr:返回字符串相应位置字符

  • left():返回字符串左侧的几个字符
select left('xuwuuuuu',3)

在这里插入图片描述

  • right():返回字符串右侧的几个字符
  • substr():字符截取函数,可以得到任何位置的字符;
    • 第二个参数是起始位置,第三个参数是长度;
    • 也可以不写第三个参数,这样就返回从起始位置到字符串最后的所有字符。
select substr('xuwuuuuu',3,2);

在这里插入图片描述

locate:返回第一个字符或一串字符匹配位置

  • 这个函数不区分大小写
  • 返回指定的字符在字符串中第一次出现的位置。
select locate('u', 'xuwuuuu')

在这里插入图片描述

  • 如果指定的字符在字符串中没有,会返回0
select locate('y', 'xuwuuuu')

在这里插入图片描述

  • 还可以搜索一串字符串
  • 同样,要搜索的字符串不存在时,也会返回0
select locate('uuuu', 'xuwuuuu')

在这里插入图片描述

replace:替换字符或字符串

  • 第一个参数:完整的字符串;第二个参数:要被替换掉的字符或字符串;第三个参数:新的字符或字符串
select replace('xuwuuuuu', 'xu', 'st')

在这里插入图片描述

  • 一个字符替换一个字符串也是可以的,一个字符串替换一个字符也可以
select replace('xuwuuuuu', 'xu', 's')

在这里插入图片描述

select replace('xuwuuuuu', 'x', 'st')

在这里插入图片描述

concat:串联两个字符串

select concat('xu', 'wuuuu')

在这里插入图片描述

  • 练习:把表中的名和姓串联起来

在这里插入图片描述

use sql_store;
select concat(first_name, ' ', last_name) as full_name
from customers

日期函数

now() / curdate() / curtime():返回当前的日期和时间 / 返回当前日期 / 返回当前时间

select now(), curdate(), curtime();

在这里插入图片描述

year(now()) / month() / day() / hour() / minute() / second() 提取特定日期或时间

  • 返回整数值
select year(now()), month(now()), day(now()),minute(now()), second(now())

在这里插入图片描述

dayname(now()) / monthname():返回字符串类型的星期和月份

  • 返回字符串
select dayname(now()), monthname(now())

在这里插入图片描述

extract(day from now()):返回指定的时间或日期

  • 要定制单位,如年、月、日期、秒等
select extract(day from now()),extract(year from now()),extract(month from now())

在这里插入图片描述

练习1

  • 筛选当前年份的订单。把当前时间的年份提取出来,再把订单日期的年份提出来,筛选两个年份相等的数据。
use sql_store;
select *
from orders
where year(order_date) = year(now())

date_format():日期格式函数

  • 格式说明符查询连接
    在这里插入图片描述

  • 两个参数。

  • 一个是日期值

  • 一个是格式字符串

    • %y:两位数的年份
    • %Y:四位数的年份
    • %m:两位数的月份
    • %M:字符串的月份
    • %d:获取当前日期
select date_format(now(), '%M %d %Y')

在这里插入图片描述

time_format():时间格式函数

  • 两个参数;一个是时间值,一个是格式字符串。
select time_format(curtime(), '%H:%i %p')

在这里插入图片描述

date_add():给日期时间值增加日期,写负值也能减

  • 想在当前日期时间上增加一天
  • 第二个参数
    • interval 1 day;
    • interval 3 year;
    • interval -1 year;获取过去的时间
select date_add(now(), interval 1 day),date_add(now(), interval -3 year)

返回了明天的同一时间(写码当前是2023-11-29),返回3年后的同一时间
在这里插入图片描述

date_sub():给日期时间值减去日期,写负值也能加

select date_sub(now(), interval 4 day),date_sub(now(), interval -3 year)

在这里插入图片描述

datediff():返回两个日期的天数间隔

  • 只返回天数的间隔,不考虑时间的间隔
  • 两个时间的顺序调换,会得到正值或负值
select datediff('2023-11-29 22:02', '2022-11-29 21:02'),datediff('2022-11-29 22:02', '2023-11-29 21:02')

在这里插入图片描述

time_to_sec():返回从零点计算的秒数

  • 返回从零点计算的秒数
select time_to_sec('00:30'),time_to_sec(curtime())

在这里插入图片描述

  • 返回两个时间间隔的秒数
select time_to_sec('22:10') - time_to_sec('22:00')

在这里插入图片描述

其他函数

ifnull()

  • 有些订单的发货id是空值。如果想让用户看到的是“未分配”而不是空值,可以调用ifnull()函数,把发货id替换成别的。
    在这里插入图片描述
use sql_store;
select order_id,ifnull(shipper_id, 'Not assigned') as shipper
from orders

在这里插入图片描述

coalesce()

  • 如果参数1是null,就返回参数2;参数2为空,就返回参数3
  • 写一堆参数,coalesce函数会返回这堆参数中第一个非空值。
use sql_store;
select order_id,coalesce(shipper_id, comments, 'Not assigned') as shipper
from orders

在这里插入图片描述

练习1

  • 返回客户的姓名和电话,没有电话的显示Unknown
  • concat()函数串联字符串!
select concat(first_name, ' ', last_name) as customer,ifnull(phone, 'Unknown')
from customers

在这里插入图片描述

if():单一表达式

  • if(expression,first,second):如果表达式为真,则返回first,否则返回second
  • 把订单分类,如果订单是今年的,就放在“活跃类别”;否则就放入“归档类别”
    • 可以用union,筛选活跃类别的,再筛选归档类别的,用union连接起来
    • 可以用if函数,达到同样效果
select order_id,order_date,if(year(order_date) = '2019', 'Active', 'Archived') as category
from orders

在这里插入图片描述

练习2

  • count(*)按照product_id进行计数,就能得到每个id对应有多少数据。
select product_id,name,count(*) as orders,if(count(*) > 1, 'Many times', 'Once') as frequency
from products
join order_items using (product_id)
group by product_id

在这里插入图片描述

case运算符:多个表达式

  • 在有多个表达式且想针对每个表达式返回不同值时,适用case运算符
  • case
    when …… then
    when …… then
    when …… then
    else
    end as ……
select order_id,order_date,casewhen year(order_date) = '2019' then 'Active'when year(order_date) = '2018' then 'Last Year'when year(order_date) < '2018' then 'Archived'else 'Future'end as category
from orders;

练习3

  • 按照积分给客户分为3类。
select concat(first_name, ' ', last_name) as customer,points,casewhen points > '3000' then 'Gold'when points between '2000' and '3000' then 'Sliver'when points < '2000' then 'Bronze'end as category
from customers
order by points desc
select concat(first_name, ' ', last_name) as customer,points,casewhen points > '3000' then 'Gold'when points >= '2000' then 'Silver'else 'Bronze'end as category
from customers
order by points desc;

在这里插入图片描述

相关文章:

【MySQL】常用内置函数:数值函数 / 字符串函数 / 日期函数 / 其他函数

文章目录 数值函数round()&#xff1a;四舍五入ceiling()&#xff1a;上限函数floor()&#xff1a;地板函数abs()&#xff1a;计算绝对值rand()&#xff1a;生成0-1的随机浮点数 字符串函数length()&#xff1a;获取字符串中的字符数upper() / lower()&#xff1a;将字符串转化…...

Python内置函数与标准库函数的详细解读

一、内置函数与标准库函数的区分 Python 解释器自带的函数叫做内置函数&#xff0c;这些函数可以直接使用&#xff0c;不需要导入某个模块。 Python 解释器也是一个程序&#xff0c;它给用户提供了一些常用功能&#xff0c;并给它们起了独一无二的名字&#xff0c;这些常用功能…...

计算机应用基础_错题集_Internet应用1---网络教育统考工作笔记004

5、下面关于搜索引擎的说法,不正确的是____。 A.搜索引擎既是用于检索的软件,又是提供查询﹑检索的网站 B.搜索引擎按其工作方式分为两类:全文搜索引擎和基于关键词的搜索引擎 C.现在很多搜索引擎提供网页快照的功能,当这个网页被删除或链接失效时,用户仍可使用网页快照…...

STM32之定时器--超声波测距

1、模块介绍 型号&#xff1a;HC-SR04 超声波测距模块是用来测量距离的一种产品&#xff0c;通过发送和收超声波&#xff0c;利用时间差和声音传播速度&#xff0c; 计算出模块到前方障碍物的距离。 2、超声波模块的使用方法 怎么让它发送波 Trig &#xff0c;给Trig端口至…...

微信小程序 老年人心血管健康知识科普系统

本系统的功能有管理员&#xff1a;个人中心&#xff0c;用户管理&#xff0c;热点信息管理&#xff0c;疾病管理&#xff0c;疾病类型管理&#xff0c;治疗管理&#xff0c;治疗类型管理&#xff0c;护理管理&#xff0c;护理类型管理&#xff0c;科普管理&#xff0c;科普类型…...

influxdb2.x安装配置指南

influxdb的教程已经是很清楚了&#xff0c;但没有中文版翻译&#xff0c;以下是个人安装配置总结 如果机器上只需要一个influxdb实例&#xff0c;或docker安装&#xff0c;直接yum install 就可以了&#xff0c;或者采用离线安装&#xff1a; sudo yum localinstall influxdb…...

android APP使用指定网络上网的原理

【精选】Android app 指定网络发送数据包的实现与原理分析_bindprocesstonetwork-CSDN博客 补充&#xff1a; frameworks/base/core/java/android/net/ConnectivityManager.java 函数&#xff1a; bindProcessToNetwork 调用到了 NetworkUtils.bindProcessToNetwork 但是N…...

git-2

1.分离头指针情况下的注意事项 分离头指针指的是变更没有基于某个branch去做&#xff0c;所以当进行分支切换的时候&#xff0c;在分离头指针上产生的commit&#xff0c;很可能会被git当作垃圾清理掉&#xff0c;如果你认为是重要的内容&#xff0c;切记需要绑定分支 2.进一步…...

Vue实现可拖拽边界布局

Vue实现可拖拽边界布局 在前端开发中&#xff0c;有时需要实现一种可拖拽边界的布局&#xff0c;通过拖动分隔线来调整不同区域大小。例如&#xff0c;下图是一个典型的可拖拽边界布局&#xff0c;它由左右两个区域组成&#xff0c;左边是一个树形菜单&#xff0c;右边是一个上…...

Day41力扣打卡

打卡记录 第 N 位数字&#xff08;找规律&#xff09; 链接 class Solution:def findNthDigit(self, n: int) -> int:count, digit, start 9, 1, 1while n > count:n - countdigit 1start * 10count start * 9 * digitnum start (n - 1) // digitreturn int(str(n…...

SpringBoot项目发送邮件

&#x1f4d1;前言 本文主要是【SpringBoot】——SpringBoot项目发送邮件的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f3…...

Mac单独修改应用语言

方法1: 方法2: defaults write com.microsoft.Excel AppleLanguages ("zh-cn") defaults write com.microsoft.Word AppleLanguages ("zh-cn")参考&#xff1a;https://www.zhihu.com/question/24976020...

Unity 通过代码控制Texture进行缩放

在实际应用开发中&#xff0c;有时候需要通过代码对Texture进行缩放。 有两个方法&#xff0c;一个是通过控制宽高进行缩放&#xff0c;另一个是通过比例值进行等比例缩放。 1、控制宽高的方法&#xff1a; /// <summary>/// 纹理缩放方法一&#xff0c;指定宽高/// &…...

C语言:输入3个整数,按由小到大的顺序输出(指针)

分析&#xff1a; 定义三个整型变量 a、b、c&#xff0c;和三个指向整型变量的指针变量 i、j、k。然后使用 scanf 函数从标准输入&#xff08;键盘&#xff09;中读取输入的三个整数&#xff0c;并将它们存储到 a、b、c 中。注意&#xff0c;使用 &a、&b、&c 进行赋…...

C# 模拟鼠标操作工具类

写在前面 用WinForm做RPA项目时经常需要模拟鼠标操作&#xff0c;通过调用Windows Api 可以实现控制鼠标的移动、点击以及滚轮滚动&#xff0c;做到跟人工一样的操作。 代码实现 public static class MouseKeyController{[DllImport("user32")]private static exte…...

content_script.js、background.js和popup.js之间的通讯

1. content_script.js 和 background.js 之间的通信&#xff1a; 使用 chrome.runtime.sendMessage 发送消息&#xff0c;然后在 background.js 中使用 chrome.runtime.onMessage 监听消息并作出相应处理。使用 chrome.extension.sendMessage 发送消息&#xff0c;然后在 back…...

python的requests请求参数带files

踩坑接口请求参数含文件 requests接口请求既有file&#xff0c;也有json。划重点params requests 官网地址 https://requests.readthedocs.io/en/stable/user/quickstart/#post-a-multipart-encoded-file 接口请求既有file&#xff0c;也有json。划重点params import reques…...

Elk:filebeat 日志收集工具和logstash

Elk:filebeat 日志收集工具和logstash Filebeat是一个轻量级的日志手机工具,所使用的系统资源比logstash部署和启动时使用的资源要小得多 Filebeat可以在非java环境使用&#xff0c;他可以代理logstash在非java环境上收集日志 缺点 Filebeat无法实现数据的过滤,一般是结合l…...

[设计模式] 常见的设计模式

文章目录 设计模式的 6 大设计原则设计模式的三大分类常见的设计模式有哪几种1. 单例模式&#xff1a;保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。&#xff08;连接池&#xff09;1. 饿汉式2. 懒汉式3. 双重检测 2. 工厂模式3. 观察者模式● 推模型● 拉…...

报错解决:You may need an additional loader to handle the result of these loaders.

报错信息如下 vue 项目 Module parse failed: Unexpected token (1:9) File was processed with these loaders:* ./node_modules/vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js* ./node_modules/babel-loader/lib/index.js* ./node_modules/eslint-loader/in…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...