时间函数
获取当前日期,当前时间,当前日期+时间
select CURDATE(),CURTIME(),NOW();
– 日期 增减 相应的天数,月数,秒数等
DATE_ADD(date,INTERVAL expr type) 增加
DATE_SUB(date, INTERVAL expr type) 减去
type常用取值:SECOND,MINUTE,HOUR,DAY,WEEK,MONTH
SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH)
UNIX_TIMESTAMP:返回当前时间戳
SELECT UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 MONTH))
FROM_UNIXTIME:把秒数转时间的函数
SELECT FROM_UNIXTIME(1665110929)
聚合函数
字符串函数
常用的字符串函数有CONCAT(str1,str2,…) 和 GROUP_CONCAT(expr)
CONCAT() 是 行 拼接,而 GROUP_CONCAT(expr)是 列 拼接,通常与GROUP BY一起使用。
-- 用户表
CREATE TABLE IF NOT EXISTS `user`
(
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键' PRIMARY KEY,
`username` VARCHAR(256) NOT NULL COMMENT '用户名',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` TINYINT DEFAULT 0 NOT NULL COMMENT '是否删除(0-未删, 1-已删)'
) COMMENT '用户表';
insert into `user` (`username`) values ('龚昊天');
insert into `user` (`username`) values ('丁懿轩');
insert into `user` (`username`) values ('侯涛');
insert into `user` (`username`) values ('史涛');
insert into `user` (`username`) values ('萧嘉熙');
SELECT id,username,CONCAT(username,',',create_time) FROM USER;
将多个字符串连接成一个字符串,可以一次性指定分隔符","要不然有10个参数写10个太麻烦了。
用concat_ws()函数
SELECT id,username,CONCAT(username,',',create_time, ',', update_time, ',', is_deleted) FROM USER;
转化为=>
SELECT id,username,CONCAT_WS(',', username,create_time, update_time,is_deleted) FROM USER;
如果,我想展示针对,在一行中展示相同创建时间的用户名称,应该怎么办?
GROUP_CONCAT() ,默认以 (,)进行分割
SELECT create_time,GROUP_CONCAT(username) FROM USER GROUP BY create_time