mysql 函数

判空函数

-- 为null时,显示后面的值
SELECT IFNULL(expression, alt_value);
SELECT IFNULL(NULL,'这个值为空');
判断函数

select case 
    when 2 < 0 then 'a小于0'
    when 2 > 0 then 'a大于0'
    else 'a为0'
    end ;
    
SELECT IF(TRUE,'真的','假的');
字符串函数

SELECT lower('SQL Course') ;  -- 小写
SELECT upper('SQL Course') ;  -- 大写
select CONCAT('a','b','c') ; -- 拼接,有任何参数为null,则函数返回null
SELECT CONCAT_WS(',','FirstName','xjdlf');  -- 拼接 带给定的分隔符

SELECT SUBSTRING('hello world',5,3);  -- 从第5个位置起,取3个字符
SELECT SUBSTRING('hello world',-3);   --  取最后3个字符
SELECT LEFT('www.yuanrengu.com',8)       -- 从左开始截取字符串  即:left(被截取字符串, 截取长度)
SELECT RIGHT('www.yuanrengu.com',6)      --从右开始截取字符串  即:right(被截取字符串, 截取长度)
SELECT LENGTH('we');    -- 返回长度,2
SELECT LENGTH('你好');   -- 返回长度,6
SELECT char_length('你好');  -- 返回长度,2

 

日期函数

-- 当时时间 
select CURDATE();  -- 日期
select now();  -- 当前时间
select SYSDATE();	-- 当前时间
CURRENT_TIMESTAMP()、CURRENT_TIMESTAMP,LOCALTIME()、LOCALTIME、LOCALTIMESTAMP()、LOCALTIMESTAMP;

-- 格式化时间
SELECT DATE_FORMAT(NOW(),"%Y-%m-%d");
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s')

-- 字符串转日期
SELECT STR_TO_DATE('2019-01-20 16:01:45', '%Y-%m-%d %H:%i:%s');

-- 将时间戳格式化
SELECT FROM_UNIXTIME(unix_timestamp(),'%Y-%m-%d %H:%i:%s')

 

日期比较

-- 取年份 月份 日
SELECT YEAR(NOW());
year() , month(),dayofmonth();

-- 取某个月的第一天
select date_sub('2021-07-08', interval day('2021-07-08') - 1 day);

-- 取某个月的最后一天
select last_day('2021-07-08');

-- 取某个月的下个月第一天 
select date_add(last_day('2021-07-08'),interval 1 day);


-- 整个月的数据
select * from test01
where date_time between date_sub('2021-07-08',interval day('2021-07-08') day )
  and  date_add(last_day('2021-07-08'),interval 1 day) ;
  
-- mysql 时间相减 得到秒数
select t.date_time2-t.date_time as time from test01 t;

-- 返回相差天数(可以为负整数)
SELECT DATEDIFF('2021-02-02 12:00:00' , '2020-09-12 13:09:23');

-- 日期加减
 select date_add('1970-1-1', interval 10 year); 
 SELECT DATE_ADD('1991-02-12',INTERVAL 10 MONTH);
 SELECT DATE_SUB('1999-01-01',INTERVAL 10 DAY) ;
 SELECT DATE_ADD(NOW(),INTERVAL 12 HOUR);

 

聚合函数

count(列名)	统计记录的条数
max(列名)	求这一列中的最大值,用于数值列
min(列名)	求这一列中的最小值
avg(列名)	求这一列的平均值
sum(列名)	求这一列的总和

 随机数

SELECT UUID();

 

上一篇:Day-3


下一篇:Stream常见的生成方式