MySQL内置函数
文章目录
- 日期函数
- 字符串函数
- 数学函数
- 其他函数
日期函数
获取年月日:
mysql> select current_date();
+----------------+
| current_date() |
+----------------+
| 2023-02-01 |
+----------------+
1 row in set (0.00 sec)
获得时分秒:
mysql> select current_time();
+----------------+
| current_time() |
+----------------+
| 01:10:26 |
+----------------+
1 row in set (0.00 sec)
获取时间戳:
mysql> select current_timestamp();
+---------------------+
| current_timestamp() |
+---------------------+
| 2023-02-01 01:11:08 |
+---------------------+
1 row in set (0.00 sec)
在日期的基础上加日期:
mysql> select date_add('2013-10-01', interval 10 day);
+-----------------------------------------+
| date_add('2013-10-01', interval 10 day) |
+-----------------------------------------+
| 2013-10-11 |
+-----------------------------------------+
1 row in set (0.00 sec)
在日期的基础上减去时间:
mysql> select date_sub('2013-10-01', interval 10 day);
+-----------------------------------------+
| date_sub('2013-10-01', interval 10 day) |
+-----------------------------------------+
| 2013-09-21 |
+-----------------------------------------+
1 row in set (0.00 sec)
计算两个日期之间相差多少天:
mysql> select datediff('2023-02-01', '1949-10-01');
+--------------------------------------+
| datediff('2023-02-01', '1949-10-01') |
+--------------------------------------+
| 26786 |
+--------------------------------------+
1 row in set (0.00 sec)
案例:
创建一张表,记录生日:
mysql> create table birthday (-> id int unsigned primary key auto_increment,-> birthday date-> );
Query OK, 0 rows affected (0.02 sec)
添加当前日期:
mysql> insert into birthday (birthday) values (current_date());
Query OK, 1 row affected (0.00 sec)mysql> select * from birthday;
+----+------------+
| id | birthday |
+----+------------+
| 1 | 2023-02-01 |
+----+------------+
1 row in set (0.00 sec)
案例:
创建一个留言表:
mysql> create table msg (-> id int unsigned primary key auto_increment,-> content varchar(30) not null,-> sendtime datetime-> );
Query OK, 0 rows affected (0.02 sec)
插入数据:
mysql> insert into msg (content, sendtime) values ('hello world', now());
Query OK, 1 row affected (0.01 sec)mysql> insert into msg (content, sendtime) values ('hello mysql', now());
Query OK, 1 row affected (0.01 sec)mysql> select * from msg;
+----+-------------+---------------------+
| id | content | sendtime |
+----+-------------+---------------------+
| 1 | hello world | 2023-02-01 01:21:23 |
| 2 | hello mysql | 2023-02-01 01:21:30 |
+----+-------------+---------------------+
2 rows in set (0.00 sec)
显示所有留言信息,发布日期只显示日期,不用显示时间:
mysql> select content, date(sendtime) from msg;
+-------------+----------------+
| content | date(sendtime) |
+-------------+----------------+
| hello world | 2023-02-01 |
| hello mysql | 2023-02-01 |
+-------------+----------------+
2 rows in set (0.00 sec)
查询在2分钟内发布的帖子:
mysql> select * from msg;
+----+-------------+---------------------+
| id | content | sendtime |
+----+-------------+---------------------+
| 1 | hello world | 2023-02-01 01:21:23 |
| 2 | hello mysql | 2023-02-01 01:21:30 |
| 3 | hello Linux | 2023-02-01 01:24:34 |
+----+-------------+---------------------+
3 rows in set (0.00 sec)mysql> select content, sendtime from msg where date_add(sendtime, interval 2 minute) > now();
+-------------+---------------------+
| content | sendtime |
+-------------+---------------------+
| hello Linux | 2023-02-01 01:24:34 |
+-------------+---------------------+
1 row in set (0.00 sec)
字符串函数
获取 emp表的 ename列的字符集:
mysql> select charset(ename) from emp limit 1;
+----------------+
| charset(ename) |
+----------------+
| utf8 |
+----------------+
1 row in set (0.00 sec)
要求显示exam_result表中的信息,显示格式: “XXX的语文是XXX分,数学XXX分,英语XXX分”:
mysql> select concat(name, '的语文是', chinese, '分,数学', math, '分,英语', english, '分') from exam_result;
+---------------------------------------------------------------------------------------------+
| concat(name, '的语文是', chinese, '分,数学', math, '分,英语', english, '分') |
+---------------------------------------------------------------------------------------------+
| 唐三藏的语文是134分,数学98分,英语56分 |
| 猪悟能的语文是176分,数学98分,英语90分 |
| 曹孟德的语文是140分,数学90分,英语67分 |
| 刘玄德的语文是110分,数学115分,英语45分 |
| 孙权的语文是140分,数学73分,英语78分 |
| 宋公明的语文是150分,数学95分,英语30分 |
+---------------------------------------------------------------------------------------------+
6 rows in set (0.00 sec)
求学生表中学生姓名占用的字节数
mysql> select name, length(name) from students;
+----------+--------------+
| name | length(name) |
+----------+--------------+
| Curry | 5 |
| Durant | 6 |
| Bryant | 6 |
| Mitchell | 8 |
+----------+--------------+
4 rows in set (0.00 sec)
将EMP表中所有名字中有S的替换成’数据库’
mysql> select replace(ename, 'S', '数据库'), ename from emp;
+----------------------------------+--------+
| replace(ename, 'S', '数据库') | ename |
+----------------------------------+--------+
| 数据库MITH | SMITH |
| ALLEN | ALLEN |
| WARD | WARD |
| JONE数据库 | JONES |
| MARTIN | MARTIN |
| BLAKE | BLAKE |
| CLARK | CLARK |
| 数据库COTT | SCOTT |
| KING | KING |
| TURNER | TURNER |
| ADAM数据库 | ADAMS |
| JAME数据库 | JAMES |
| FORD | FORD |
| MILLER | MILLER |
+----------------------------------+--------+
14 rows in set (0.00 sec)
截取EMP表中ename字段的第二个到第三个字符
mysql> select substring(ename, 2, 2), ename from emp;
+------------------------+--------+
| substring(ename, 2, 2) | ename |
+------------------------+--------+
| MI | SMITH |
| LL | ALLEN |
| AR | WARD |
| ON | JONES |
| AR | MARTIN |
| LA | BLAKE |
| LA | CLARK |
| CO | SCOTT |
| IN | KING |
| UR | TURNER |
| DA | ADAMS |
| AM | JAMES |
| OR | FORD |
| IL | MILLER |
+------------------------+--------+
14 rows in set (0.00 sec)
以首字母小写的方式显示所有员工的姓名
mysql> select concat(lcase(substring(ename, 1, 1)), substring(ename, 2)) from emp;
+------------------------------------------------------------+
| concat(lcase(substring(ename, 1, 1)), substring(ename, 2)) |
+------------------------------------------------------------+
| sMITH |
| aLLEN |
| wARD |
| jONES |
| mARTIN |
| bLAKE |
| cLARK |
| sCOTT |
| kING |
| tURNER |
| aDAMS |
| jAMES |
| fORD |
| mILLER |
+------------------------------------------------------------+
14 rows in set (0.00 sec)
数学函数
绝对值:
mysql> select abs(-200);
+-----------+
| abs(-200) |
+-----------+
| 200 |
+-----------+
1 row in set (0.00 sec)
向上取整:
mysql> select ceiling(8.1);
+--------------+
| ceiling(8.1) |
+--------------+
| 9 |
+--------------+
1 row in set (0.00 sec)mysql> select ceiling(-8.1);
+---------------+
| ceiling(-8.1) |
+---------------+
| -8 |
+---------------+
1 row in set (0.00 sec)
向下取整:
mysql> select floor(8.6);
+------------+
| floor(8.6) |
+------------+
| 8 |
+------------+
1 row in set (0.00 sec)mysql> select floor(-8.6);
+-------------+
| floor(-8.6) |
+-------------+
| -9 |
+-------------+
1 row in set (0.00 sec)
保留2位小数位数(小数四舍五入):
mysql> select format(12.456, 1);
+-------------------+
| format(12.456, 1) |
+-------------------+
| 12.5 |
+-------------------+
1 row in set (0.00 sec)
十进制转二进制:
mysql> select bin(12);
+---------+
| bin(12) |
+---------+
| 1100 |
+---------+
1 row in set (0.00 sec)
转化成十六进制:
mysql> select hex(10);
+---------+
| hex(10) |
+---------+
| A |
+---------+
1 row in set (0.00 sec)
随机数:
mysql> select rand();
+--------------------+
| rand() |
+--------------------+
| 0.7938835246431488 |
+--------------------+
1 row in set (0.00 sec)
其他函数
user() 查询当前用户:
mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串,相当于对内容进行加密:
mysql> select md5('root');
+----------------------------------+
| md5('root') |
+----------------------------------+
| 63a9f0ea7bb98050796b649e85481845 |
+----------------------------------+
1 row in set (0.00 sec)
database()显示当前正在使用的数据库:
mysql> select database();
+------------+
| database() |
+------------+
| scott |
+------------+
1 row in set (0.00 sec)
ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值:
mysql> select ifnull('a', 123);
+------------------+
| ifnull('a', 123) |
+------------------+
| a |
+------------------+
1 row in set (0.00 sec)mysql> select ifnull(null, 123);
+-------------------+
| ifnull(null, 123) |
+-------------------+
| 123 |
+-------------------+
1 row in set (0.00 sec)
相关文章:

MySQL内置函数
文章目录日期函数字符串函数数学函数其他函数日期函数 获取年月日: mysql> select current_date(); ---------------- | current_date() | ---------------- | 2023-02-01 | ---------------- 1 row in set (0.00 sec)获得时分秒: mysql> se…...

mysql数据库之innodb存储引擎架构之内存架构
一、逻辑存储结构 mysql5.5版本开始,默认使用innodb存储引擎,它擅长事务处理,具有崩溃恢复特性,在日常开发中使用非常广泛。 架构图(左侧为内存架构,右侧为磁盘架构) 二、 内存架构。 1、缓冲…...

Vue:(三十五)路由vue-router
今天,我们开始学习vue中一个很关键的知识点,路由。理解vue的一个插件库,专门用来实现SPA应用单页web应用整个应用只有一个完整的页面点击页面中的导航连接不会刷新页面,只会做页面的局部更新数据需要通过ajax请求获取下来…...

Dynabook笔记本电脑无法开机怎么重装新系统?
Dynabook笔记本电脑无法开机怎么重装新系统?有用户使用Dynabook笔记本电脑出现了无法正常开机的情况。遇到这样的问题是我们的电脑系统出现了损坏,可以尝试进行系统修复。如果无法修复的话,就需要进行系统重装了。以下为大家带来Dynabook笔记…...
React Native基础知识点
1、组件 与react编写web应用不同,不是使用div、span等标签。而是使用RN官方提供的组件,如View、Text等组件来搭建页面 2、宽高 React Native 中的尺寸都是无单位的,表示的是与设备像素密度无关的逻辑像素点。默认值为auto <View style{{…...

nginx 平滑升级
背景介绍 因为一些原因,比如说 Nginx 发现漏洞、应用一些新的模块等等,想对 Nginx 的版本进行更新,最简单的做法就是停止当前的 Nginx 服务,然后开启新的 Nginx 服务。但是这样会导致在一段时间内,用户是无法访问服务…...

数据结构——链表OJ题目讲解(2)
作者:几冬雪来 时间:2023年3月10日 内容:数据结构链表OJ题目讲解 来源:牛客网和力扣 目录 前言: 刷题: 1.反转链表: 1.改变指向的解法: 2.取头结点插入到新链表: …...

GitHub上线重量级分布式事务笔记,再也不怕面试官问分布式了
分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式…...

C++语法规则1(C++面向对象 )
C面向对象 面向对象的三大特征是继承,多态和封装,C重面向对象重要的就是这些,我们下面通过一些简单的实例加以理解,从这小节开始,我们将开启新的编程旅途。与 C 语言编程的思想完全不同了,这就是 C!理解概…...

Web漏洞-CSRF漏洞
CSRF漏洞介绍:CSRF(Cross-Site Request Forgery),中文名称:跨站请求伪造,是一种劫持用户在当前已登录的Web应用程序上执行非本意操作一种攻击.原理:攻击者利用目标用户的身份,执行某…...
Python3-面向对象
Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。 如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象…...

拐点!新能源车交付均价首次「低于」燃油车,智能电动成新爆点
2023年开局,随着特斯拉打响新能源汽车市场的「价格战」首炮,除部分燃油车品牌(仍依赖自身多年的用户和品牌积累的溢价能力)没有跟进之外,几乎所有的新能源车型都在进行车型价格的下调。 而数据也在反映市场的拐点即将来…...

JavaScript String 字符串对象实例合集
文章目录JavaScript String 字符串对象实例合集返回字符串的长度为字符串添加样式返回字符串中指定文本首次出现的位置 - indexOf()方法查找字符串中特定的字符,若找到,则返回该字符 - match() 方法替换字符串中的字符 - replace()JavaScript String 字符…...
实习生培养计划
部门最近入职了实习生,为了更好的帮助实习生完成由学生向职业人的转变,并尽快融入企业稳步成长,现提出实习生培养计划,具体方案如下: 1、方案目的 1、使实习生快速转换角色与心态,适应从校园到企业的坏境…...

【服务器管理】Wordpress服务器内存占用太高(优化方案详解)
简述 在刚刚配置完服务器之后,想着试一试wordpress这个功能,结果打开服务器后台,发现本来就不多的内存被占用了一大半。 我真的服了,我还啥都没干呢,就这么多的内存占用,那之后我开始弄了还得了。因此有必…...

【ECCV 2022】76小时动捕,最大规模数字人多模态数据集开源
随着元宇宙的火爆以及数字人建模技术的商业化,AI 数字人驱动算法,作为数字人动画技术链的下一关键环节,获得了学界和工业界越来越广泛的兴趣和关注。其中谈话动作生成 (由声音等控制信号生成肢体和手部动作)由于可以降…...

联合解决方案 | 亚信科技AntDB数据库携手浪潮K1 Power赋能关键行业数字化转型,助力新基建
自2022年印发《“十四五”数字经济发展规划》以来,我国数字化发展进入快车道。数据库作为数据存储与计算的基础软件,对筑牢数字经济底座至关重要。服务器是承载数据的重要载体,在数据库性能可以通过扩容而无上限提升的情况下,数据…...
Android 单元测试问题总结(Robolectric+JUnit)
代码单元测试问题总结: 1、测试类中引用第三方jar包类报错 问题原因: 测试的库中没有包含第三方jar包。 解决办法: 在app下gradle中加入第三方jar包配置: testImplementation files(‘libs/third.jar’) 2、自定义Shadow类不生…...

专项攻克——二叉树
文章目录一、二叉树定义、分类二、二叉树的存储结构三、创建二叉树四、遍历方式一、二叉树定义、分类 二叉树:是N个结点的有序集合,该集合或者为空集,或者由一个根节点跟两棵互不相交的、分别称为根节点的左子树或者右子树的二叉树组成。每个…...

PACS系统源码 PACS源码 三维重建PACS源码
一、系统概述: 基于VC MSSQL开发的一套三甲医院医学影像PACS系统源码,集成3D影像后处理功能,包括三维多平面重建、三维容积重建、三维表面重建、三维虚拟内窥镜、最大/小密度投影、心脏动脉钙化分析等功能。系统功能强大,代码…...

简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...