扩展: SQL中常用的函数, 这些函数 与 Hive中的函数, 80%以上, 都是一样的, 现在掌握了, 学Hive的时候会轻松些.
-- 数字函数
-- 求绝对值
select abs(-10); -- 10
-- 四舍五入
select round(3.12345); -- 3
select round(3.52345); -- 4
select round(3.12345, 4); -- 3.1235
-- 保留n位小数, 但是不会四舍五入
select truncate(3.12345, 4); -- 3.1234
-- 天花板数, 比这个数字大的所有数字中, 最小的那个整数.
select ceil(10.3); -- 11
select ceil(10.0); -- 10
select ceil(-10.3); -- -10
-- 地板数, 比这个数字小的所有的数字中, 最大的那个整数
select floor(10.3); -- 10
-- 随机数
select rand(); -- 0.0 ~ 1.0之间, 包左不包右.
-- 100充当的"随机种子", 只要种子一样, 每次生成的随机数都是一样的.
select rand(100); -- 0.17353134804734155
-- 获取余数
select mod(10, 3); -- 1
-- 求n的指定次幂
SELECT power(2, 5); -- 32
SELECT pow(2, 5); -- 32
-- 圆周率
select pi(); -- 3.141593
-- 字符串函数
-- 获取字符串长度
select length('abc'); -- 3
-- 拼接字符串
select concat('ab', 123, false); -- false: 0, true: 1
-- 带分隔符字符串连接函数:
select concat_ws(':', 'ab', 123, false); -- false: 0, true: 1
-- 移除首尾空格
select trim(' abc bc '); -- 'abc bc'
-- 获取字符串的前n个字符
select left('hello world', 5); -- hello
-- 查找指定字符串在字符串中第一次出现的位置.
select locate('ab', '123abc45abd'); -- 从1开始数的.
-- 非空校验
select isnull(null); -- false: 0, true: 1
select isnull('abc'); -- false: 0, true: 1
-- 字符串反转函数:reverse
select reverse('上海自来水');
-- 字符串截取函数:
select substr('hello黑马程序员world', 6); -- 黑马程序员world
select substr('hello黑马程序员world', 6, 5); -- 黑马程序员
select substr('hello黑马程序员world', -3); -- rld
-- 字符串转大写函数:upper,ucase
select upper('abc');
select ucase('abc');
-- 字符串转小写函数:lower,lcase
select lower('ABC');
select lcase('ABC');
-- 字符串替换
select replace('abc1bc1ef1', '1', '黑马'); -- 用 黑马 替换 1
-- 日期函数
-- 获取当前日期: current_date
select now(); -- 2022-04-15 18:10:26
-- 获取当前时间戳: current_timestamp
select current_timestamp(); -- 2022-04-15 18:12:26, 年月日, 时分秒
select unix_timestamp(); -- 从时间原点(1970-01-01 00:00:00) 至 当前时间的 秒值
-- 日期转年函数: year
select year('2009-07-30 04:17:52');
-- 日期转月函数: month
select month('2009-07-30 04:17:52');
-- 日期转周函数: weekofyear 返回指定日期所示年份第几周
select weekofyear(now());
-- 日期比较函数: datediff 日期格式要求'yyyy-MM-dd HH:mm:ss' or 'yyyy-MM-dd'
select datediff('2022-04-15', '2022-04-20'); -- -5
select datediff('2022-04-15', '2022-03-20'); -- 26
-- 日期增加函数: date_add
select adddate(now(), 3); -- 往后推3天
select date_add(now(), INTERVAL 2 YEAR ); -- 往后推2年
select date_add(now(), INTERVAL 5 MONTH); -- 往后推5个月
-- 日期减少函数: date_sub
select subdate(now(), 5); -- 往前推5天
select date_sub(now(), INTERVAL 2 YEAR ); -- 往前推2年
select date_sub(now(), INTERVAL 5 MONTH); -- 往前推5个月
-- 其他函数
select database(); -- 查看当前使用的数据库
select user(); -- 查看当前用户, root
select version(); -- 查看当前MySQL的版本, 我们装的是 8.0.23
网友评论