# 获取当前时间
select now();
# 获取当前时间戳
select unix_timestamp() * 1000;
# 时间转时间戳
select unix_timestamp('日期') * 1000;
# 时间戳转时间
select from_unixtime(time / 1000);
# 时间戳格式化
select from_unixtime(time / 1000, '%Y-%m-%d');
select from_unixtime(time / 1000, '%Y-%m-%d %H:%i:%s');
# 时间格式化
select date_format(now(), '%Y-%m-%d');
select date_format(now(), '%Y-%m-%d %H:%i:%s');
# 日期添加指定的时间间隔
select adddate('日期', num);
# 字符串拼接
select concat('', ''...);
# 模糊查询(like效率最低,条件左右亦可)
select '字段' from '表名' where '字段' like '%_%';
select '字段' from '表名' where instr('字段', '');
select '字段' from '表名' where locate('', '字段');
select '字段' from '表名' where position('' in '字段');
select '字段' from '表名' where find_in_set('', '字段');
# join用法
left join : 两个表的交集外加左表剩下的数据;
right join : 两个表的交集外加右表剩下的数据;
inner join : 两个表的交集;
cross join : 将A表的每一条记录与B表的每一条记录强行拼在一起;
using : using('字段')的功能相当于on '字段' = '字段',using会去除指定的列,而on不会;
# 分组后字段合并
select group_concat('字段') from '表名' group by '字段';
# 生成连续日期
create table date (i int(1));
insert into date (i) values (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);
select
adddate('开始日期', dates.i) date
from (
select
d1.i + d10.i * 10 + d100.i * 100 i
from date d1
cross join date d10
cross join date d100
) dates
where adddate('开始日期', dates.i) <= '结束日期';
# 累加
select
(@i := @i + num)
from t
cross join (select @i := 0) x
# 表添加字段
alter table 表名 add colum 字段名 varchar(255) character set utf8 collate utf8_general_ci null default '' comment '描述' after 字段名;
# 创建存储过程
create procedure pro_()
begin
declare i int;
declare user varchar(36);
set i = 0;
while i < 15000 do
set user = uuid();
insert into sys_user(user_id, username) values (user, user_id);
insert into sys_org_user(relate_id, org_id, user_id) values (uuid(), org_id, user);
set i = i+1;
end while;
end;
# 执行存储过程
call pro_;
# 删除存储过程
drop procedure pro_;
Mybatis转义字符表
< | < | 小于 |
> | > | 大于 |
& | & | 与 |
' | ' | 单引号 |
" | " | 双引号 |