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();

结束。

相关推荐
kkkkkkkkkk_Z9 分钟前
新手自学嵌入式 | 学习日记:ARM架构初探与基础概念梳理
arm开发·学习·架构
JosieBook19 分钟前
【数据库】MySQL 实战精通系列 · 第11篇:Redis 缓存与 MySQL 一致性实战
数据库·mysql·缓存
鬓戈24 分钟前
开源中文输入法技术调研与自建方案
学习·开源
only-lucky1 小时前
QML深入学习七(MVC模块)
学习·mvc
2401_850122041 小时前
高温耐油热缩套管选型:材料、温度和油液要匹配
经验分享·笔记·科技·学习
guo_wen_qiang1 小时前
云服务器mysql分库分表环境搭建(2库4表)
数据库·mysql·docker
Xudde.2 小时前
Me and My Girlfriend 靶机渗透测试(Vulnhub Writeup)
笔记·学习·安全·web安全
Canmag 兴隆磁性2 小时前
自动装盒设备 AO-WCMF
学习·永磁材料·充磁
imDwAaY2 小时前
Bean的生命周期
java·笔记·后端·学习·spring·dubbo
坤坤子吖2 小时前
C++11——Lambda、function、bind 与可调用对象
c++·笔记·学习