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

结束。

相关推荐
小席是个热心肠2 小时前
AI相关的自我学习
java·人工智能·学习
J_bean4 小时前
MySQL 事务是否必须手动开启?
数据库·mysql·数据库事务·自动提交·手动提交
J_bean4 小时前
MySQL InnoDB 如何检测死锁、判定死锁、处理死锁
数据库·mysql·死锁·死锁检测·处理死锁·死锁判定
何事误红尘5 小时前
Mqtt学习笔记(一):Mosquitto服务器搭建、MQTTX安装测试
学习
青山是哪个青山5 小时前
LangChain 学习笔记(三):LangSmith 调试与监控
笔记·学习·langchain
那年窗外下的雪.7 小时前
AIDC 学习日志 第 04 天 BGP Underlay 基础与路由选择
服务器·学习·php
蒸蒸yyyyzwd7 小时前
cpp选手备战后端学习笔记day6 秋招笔试题
笔记·学习
weixin_446260859 小时前
AVA-Encoder:面向智能体原生视频表征学习框架
学习·音视频
吃好睡好便好9 小时前
说说口罩的佩戴
学习·生活·口罩
冰暮流星10 小时前
mysql之分组查询
数据库·mysql