mysql 常见函数总结

--获取当前的database
select database();
-- 返回现在的年份 月 日期
select year(now()),month(now()),day(now()) ;
-- 坐标中的y值
select y(point(12,333)),x(point(12,333)) ;
-- 随机值前者有-  后者无-18位
select uuid(),UUID_SHORT() ;
-- 转大写 小写
select UPPER('txxx'),lower('txxx') ;
-- 78 十六进制为 4E
select HEX(78);
-- 去掉空格
select TRIM('   w  ');
-- 转大写 小写
select ucase('txxx'),LCASE('txxx') ;
-- 截取一段 2表示保留小数两位 123.45  -2表示保持百位 100
select truncate(123.456,2),truncate(123.456,-2) ;
-- 只对时分秒进行截取
select TIME_FORMAT(now(),'%T') ;
-- 时间比较 如果前者大于后者则返回1 否则返回0
select TIMEDIFF(now(),(select enddate from test where id=456))>0 ;
-- 返回当前时间
select sysdate(),now() ;
-- 按照字面排序如果前者大于后者则返回1 否则返回-1
select strcmp('abc','bcd');
-- 如果为空则返回1 否则返回0
select ISNULL('a') ;
--追加
SELECT CONCAT(2,'test'),concat_ws(',','2','test');
-- 类似indexof函数  第一个参数是需要找的字符 第二个是字符串 从1开始
--截取字符串
SELECT SUBSTR('1234',1) ;返回 1234 从一开始算
-- 不是从0开始算
select LOCATE('3','1234') ; -- 返回3
-- group_concat 进行表中的列值进行追加
select id,group_concat(name) from test group by id ;
-- 求前一天和后一天的时间
select adddate(now(),-1),adddate(now(),1) ;

--类似 to_char方法
date_format(date,'%Y-%m-%d')    -------------->oracle中的to_char();
str_to_date(date,'%Y-%m-%d')    -------------->oracle中的to_date();

%Y:代表4位的年份
%y:代表2为的年份
 
%m:代表月, 格式为(01……12)  
%c:代表月, 格式为(1……12)
 
%d:代表月份中的天数,格式为(00……31)  
%e:代表月份中的天数, 格式为(0……31) 
 
%H:代表小时,格式为(00……23)  
%k:代表 小时,格式为(0……23)  
%h: 代表小时,格式为(01……12)  
%I: 代表小时,格式为(01……12)  
%l :代表小时,格式为(1……12)
  
%i: 代表分钟, 格式为(00……59) 

%r:代表 时间,格式为12 小时(hh:mm:ss [AP]M)  
%T:代表 时间,格式为24 小时(hh:mm:ss) 

%S:代表 秒,格式为(00……59)  
%s:代表 秒,格式为(00……59) 

你可能感兴趣的:(mysql)