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

结束。

相关推荐
Fleshy数模2 小时前
CentOS7 安装配置 MySQL5.7 完整教程(本地虚拟机学习版)
linux·mysql·centos
az44yao3 小时前
mysql 创建事件 每天17点执行一个存储过程
mysql
秦老师Q4 小时前
php入门教程(超详细,一篇就够了!!!)
开发语言·mysql·php·db
星火开发设计4 小时前
类型别名 typedef:让复杂类型更简洁
开发语言·c++·学习·算法·函数·知识
Gorgous—l5 小时前
数据结构算法学习:LeetCode热题100-多维动态规划篇(不同路径、最小路径和、最长回文子串、最长公共子序列、编辑距离)
数据结构·学习·算法
橘子135 小时前
MySQL用户管理(十三)
数据库·mysql
Dxy12393102165 小时前
MySQL如何加唯一索引
android·数据库·mysql
我真的是大笨蛋5 小时前
深度解析InnoDB如何保障Buffer与磁盘数据一致性
java·数据库·sql·mysql·性能优化
怣505 小时前
MySQL数据检索入门:从零开始学SELECT查询
数据库·mysql