MySQL学习记录——팔 函数

文章目录


1、日期函数

sql 复制代码
//获取日期
select current_date();
//获取时间
select current_time();
//获取时间戳, 格式为日期+时间
select current_timestamp();
//获取当前时间, 格式为日期+时间
select now();
//获取参数的日期部分
select date('datetime');//括号内可以直接写now()
//增加日期, 增加部分的可以是年月日, 日期部分可以写date(now())来获取
select date_add('2024-02-15', interval 7 day);
//第一个日期减第二个日期的值, 可以有负值, 可以用date(now()) 
select datediff('2024-02-05', '2024-01-01');

实例

sql 复制代码
create table tmp( id bigint primary key auto_increment, birthday date not null );

创建好后,插入一些时间类型的数据

sql 复制代码
insert into tmp (birthday) values ('2001-04-07');
insert into tmp (birthday) values (current_time());
insert into tmp (birthday) values (current_date());
insert into tmp (birthday) values (now());
insert into tmp (birthday) values (current_timestamp());

无论怎么插入,都变成了日期格式


做一个简易留言表

sql 复制代码
create table msg( id int primary key auto_increment, content varchar(30) not null, sendtime datetime );
sql 复制代码
//统计2分钟内的评论
select content,sendtime from msg where sendtime > date_sub(now(), interval 2 minute);
select content,sendtime from msg where date_add(sendtime, interval 2 minute) > now();

2、字符串函数

sql 复制代码
//查看字符集, 比如汉字就是utf8, 也可以是一个列名
select charset('');
//拼接字符, 拼接前都转成字符
select concat('', '');
//找到第二个字符串在第一个字符串的起始位置
select instr('', '');
//转为全大写
select ucase('');
//转为全小写
select lcase('');
//从最左边开始取指定长度的字符
select left('', 4);
//从最右边开始取指定长度的字符
select right('', 4);
//获取字符串长度
select length('');
//从str字符串中查找ss, 找到后用rs替换
select replace(str, ss, rs);
//同C语言
select strcmp(str1, str2);

以之前的一个表为例。内容不重要,重点是写法。

sql 复制代码
select concat('考生姓名: ',name, ', 总分: ', chinese+math+english) msg from exam_result;

如果length(),括号里的是中文字符,那么就按照一个字符3个字节这样计算,也就是两个汉字的话显示出来的就是6。

sql 复制代码
//有S的字符串将S替换成D
//替换是拷贝一份, 对拷贝的部分进行替换
select replace(列名, 'S', 'D') from 表名;
//截取部分字符串, 从字符串某个位置开始截取指定长度的字符串, 位置从1开始数
select substring('', 2, 2) from 表名;
sql 复制代码
//去除左侧空格
ltrim('');
//去除左右两侧空格
trim('');
//去除右侧空格
rtrim('');

3、数学函数

sql 复制代码
//绝对值
abs();
//数字转成二进制
bin();
//十进制转十六进制
hex();
//进制转换, 从前一个进制转为后一个进制
conv(number, from_base, to_base);
//向下取整
ceiling();
//向上取整
floor();
//保留小数后面的位数, int就是位数
format(number, int);
//模运算, 可进行负数运算
mod();
//随机数
rand();

4、其它函数

sql 复制代码
//查看用户
user();
//md5摘要(网络CA协议), 生成32位字符串
md5();
//如果val1为null就返回val2, 否则返回val1
//参数类型不局限于int
ifnull(val1, val2);
//加密
password();

结束。

相关推荐
一只栖枝1 小时前
关于OCP认证:有Oracle和MySQL两种
数据库·mysql·oracle·开闭原则·数据管理·ocp认证
灏瀚星空1 小时前
从基础到实战的量化交易全流程学习:1.3 数学与统计学基础——概率与统计基础 | 基础概念
笔记·python·学习·金融·概率论
无敌的牛1 小时前
AVL树的介绍与学习
数据结构·学习
【0931】2 小时前
进程控制的学习
学习·操作系统
阿图灵2 小时前
文章记单词 | 第48篇(六级)
学习·学习方法
宁建利2 小时前
树莓派学习专题<11>:使用V4L2驱动获取摄像头数据--启动/停止数据流,数据捕获,缓存释放
学习
阳光宅男@李光熠2 小时前
【质量管理】TRIZ(萃智)的工程系统进化法则
笔记·学习
Suckerbin2 小时前
pikachu靶场-敏感信息泄露
网络·学习·安全·网络安全
爱编程的小新☆2 小时前
【MySQL】数据类型和表的操作
java·数据库·mysql
ghost1432 小时前
C#学习第19天:多线程
开发语言·学习·c#