mysql常用函数以及sql总结

2018-05-13  本文已影响0人  vincky倩

因为刚刚入职一家新公司,原来一直用oracle,新公司用的mysql,正好借此机会学习一下,也记录一下,有需要的你,可以参考下

1、获取当前时间:select now()    or   SELECT SYSDATE()   or select CURDATE()

1)其他日期相关函数

select DATE_FORMAT(now(),'%Y-%m-%d') as cs1,STR_TO_DATE(now(),'%Y-%m-%d %H:%i:%S') as cs2

2).日期运算函数MONTH(date):返回date的月份数,例如MONTY(‘2013-08-20’),返回:8           DAY(date):返回date的天数,例如DAY(‘2013-08-20’),返回:20               YEAR(date):返回date的年份数,例如YEAR(‘2013-08-20’),返回:2013TO_DAYS(date):date对应的天数,例如TO_DAYS (‘2008-10-07’),返回:733687WEEK(date):返回date对应周几,例如: WEEK(‘2013-08-20’),返回:2DATEDIFF(date1,date2):返回date1-date2的天数差别,例如:DATEDIFF(‘2013-08-20’,’2013-08-18 13:30:14’),返回:2

2、连接函数concat(str1,str2) :select concat('my ','name');

3、带分隔符的连接函数concat_ws(separator,str1,str2):select concat_ws('#','名称:','vincky');

4、IF(exp1,exp2,exp3):若是exp1 为真,返回exp2;若是exp1为假,返回exp3: 

select if(2>1,'true','false'); 

5、IFNULL(exp1,exp2):若是exp1 IS NOT NULL,返回exp1,否则返回exp2:

select IFNULL(null,'晓倩')

select IFNULL('vincky','晓倩');

6、 NULLIF(exp1,exp2):若是exp1=exp2,返回NULL,否则返回exp1

select NULLIF('vincky','vincky');

select NULLIF('vincky','晓倩');

7、SUBSTRING(exp1,pos,len): exp1为字符串,pos为位置,len为长度

select substring('1234.qq.com',1,4);

8、TRIM(exp1):去掉exp1中的开头和 结尾的空格

select concat(TRIM(' vincky '),'倩');

9、REPLACE(str,from,to):返回字符串str,其字符串from的所有出现由字符串to代替

select REPLACE('www.mysql.com', 'mysql', 'oracle');

10、case 

when 条件1 then 结果1

when 条件2 then 结果2

when 条件3 then 结果3

else 结果4 end

写法一:

case sex when 1 then 男  when 2 then 女 else 未知 end

写法二:

case when sex=1 then 男 when sex=2 then 女 else 未知 end

其他例子:

select CASE WHEN count(1) >0 THEN DATEDIFF(NOW(),t.STORE_TIME) ELSE (select DATEDIFF(NOW(),STORE_TIME) from guizi_order where CUSTOMER_PHONE='13708985751' ORDER BY STORE_TIME LIMIT 1) END as days from guizi_order_bak t where t.CUSTOMER_PHONE='13708985751' ORDER BY t.STORE_TIME LIMIT 1

11、mysql中计算两个日期的时间差函数TIMESTAMPDIFF (返回日期或日期时间表达式start 和end 之间的整数差)。

SELECT TIMESTAMPDIFF(MONTH,'2018-05-01','2018-03-01') m,TIMESTAMPDIFF(YEAR,'2019-05-01','2018-01-01') y 

上一篇下一篇

猜你喜欢

热点阅读