Mysql的常用
1、时间计算 timestampdiff() 函数
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
作用:计算两个日期、时间表达式(datetime_expr1 和 datetime_expr1)之间相差的天数、周数、小时数、分钟、秒数。
返回:日期或者时间表达式之间的证书差
参数:unit有以参数可以用:
1、FRAC_SECOND 表示间隔是毫秒
2、SECOND 秒
3、MINUTE 分钟
4、HOUR 小时
5、DAY 天
6、WEEK 星期
7、MONTH 月
8、QUARTER 季度
9、YEAR 年
举例:计算两日期之间相差多少分钟
select timestampdiff(MINUTE,'2023-01-01','2023-06-30');
2、字符串拼接的几种方式
第一种:CONCAT(string1,string2,...)
mysql自带语法CONCAT(string1,string2,...),此处是直接把string1和string2等等的字符串拼接起来(无缝拼接)
select CONCAT(area,'的',`name`) as test from province

第二种:CONCAT_WS(separator,string1,string2,...)
mysql自带语法CONCAT_WS(separator,string1,string2,...),但是可以多个字符串用指定的字符串进行拼接
string1,string2代表的是字符串,而separator代表的是连接其他参数的分隔符,可以是符号,也可以是字符串。如果分隔符为NULL,则结果为NULL。此方法参数可以为NULL。
select CONCAT_WS("=",area,'的',type,`name`) as test from province;

第三种:GROUP_CONCAT([DISTINCT]
mysql的自带语法GROUP_CONCAT([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
select area,GROUP_CONCAT(`name`) from province GROUP BY area; # 默认风格符是","

select area,GROUP_CONCAT(`name` SEPARATOR '#') from province GROUP BY area; # 指定风格符为“#“

select area,GROUP_CONCAT(`name` ORDER BY `name` desc) from province GROUP BY area; # 按照name排序

select type,GROUP_CONCAT(DISTINCT `name` ORDER BY `name` desc) from province GROUP BY type; # 按照name排序

第四种 运算
select `name`,`code`+99 from province;

3、if表达式
IF(expr1,expr2,expr3)
如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。
4、修改时间戳
update tx_lunar set update_date = str_to_date('2024-03-28 00:00:01' ,'%Y-%m-%d %H:%i:%S') where update_date is null;
本文来自博客园,作者:zhangpba,转载请注明原文链接:https://www.cnblogs.com/zhangpb/p/17024219.html

浙公网安备 33010602011771号