字符串函数
SELECT CONCAT("liu", "yan")
-- 带分隔符字符串连接函数:concat_ws(separator,[string|array(string)]+)
SELECT CONCAT_WS('.', 'www','51doit', 'com');
-- 字符串截取函数: substr(str, pos[, len])或者substring(str, pos[,len])
SELECT SUBSTR("angelababy", -2); -- pos是从1开始的索引,如果为负数则倒着数
SELECT SUBSTR("angelababy", 2, 2);
-- 字符串长度函数: length(str / binary)
SELECT LENGTH("I Love Hive");
-- 字符串反转函数: reverse
SELECT REVERSE("I Love Hive");
-- 字符串连接函数:concat(stri, str2, ... strN)
-- 字符串转大写函数: upper , ucase
SELECT UPPER("I Love Mysql");
SELECT UCASE("I Love Mysql");
-- 字符串转小写函数:lower , Lcase
SELECT LOWER("I Love Mysql");
SELECT LCASE("I Love Mysql");
-- 去空格函数: trim去除左右两边的空格
SELECT TRIM(" I Love Mysql ");
-- 左边去空格函数: ltrim
SELECT LTRIM(" I Love Mysql ");
-- 右边去空格函数:rtrim
SELECT RTRIM(" I Love Mysql ");
-- 空格字符串函数: space(n)返回指定个数空格
SELECT SPACE(4);
-- 重复字符串函数:repeat(str, n)重复str字符串n
SELECT REPEAT("I Love Mysql", 2);
-- 首字符ascii函数: ascii
SELECT ASCII("angela");
-- a对应ASCII 97
-- 左补足函数:lpad
SELECT LPAD('hi', 5, '*');
-- 右补足函数: rpad
SELECT RPAD('hi', 5, '*');
-- 集合查找函数:find_in_set(str ,str_array) 返回str的位置 从1开始
SELECT FIND_IN_SET('b', 'abc,b,ab,c,def');
日期函数
-- 当前日期
SELECT CURRENT_DATE();
-- 同一查询中对current_timestamp 的所有调用均返回相同的值。
SELECT CURRENT_TIMESTAMP();
-- 获取当前UNIX时间戳函数:unix_timestamp
SELECT UNIX_TIMESTAMP();
-- 日期转UNIX时问戳函数: unix_timestamp
SELECT UNIX_TIMESTAMP("2022-08-13 19:08:03");
-- UNIX时间戳转日期函数:from_unixtime
SELECT FROM_UNIXTIME(1660417683);
SELECT FROM_UNIXTIME(0);
-- 日期比较函数; datediff日期格式要求'yyyy-MN-dd HH:mm:ss ' or 'yyyy-MM-dd '
SELECT DATEDIFF('2022-08-08', '2022-08-10');
-- 日期增加函数: date_add
SELECT DATE_ADD('2022-08-08', INTERVAL 10 DAY);
-- 日期减少函数: date_sub
SELECT DATE_SUB('2012-08-08', INTERVAL 10 DAY);
-- 获取年:year
SELECT YEAR('2022-08-13 19:08:03');
-- 获取月:month
SELECT MONTH('2022-08-13 19:08:03');
-- 获取日:day
SELECT DAY('2022-08-13 19:08:03');
-- 获取时:hour
SELECT HOUR('2022-08-13 19:08:03');
-- 获取分:minute
SELECT MINUTE('2022-08-13 19:08:03');
-- 获取秒:second
SELECT SECOND('2022-08-13 19:08:03');
-- 获取周:weekofyear 指定年份的第多少周
SELECT WEEKOFYEAR('2022-08-13 19:08:03');
select date('2022-08-13 19:08:03'); //只显示年月日
条件判断
SELECT IF(1 = 2, 'a', 'b');
-- 判断是否为空: isnull 是null 返回1 不是null 返回0
SELECT ISNULL(NULL);
SELECT ISNULL(10);
-- coalesce(v1,v2,v3,v4...)返回第一个非空的值 如果都为null返回null
SELECT COALESCE(NULL, NULL, NULL, NULL);
SELECT COALESCE(NULL, NULL, 1, 2, 3, 4, NULL, 5, 6);
SELECT COALESCE(NULL, 3, 1, 2, 3, 4, NULL, 5, 6);