MySql常用函数

MySql常用函数

一、数学函数:

ABS():取绝对值

MOD(A,B):取余,等效于A%B

TRUNC(x,y):对x取小数点后y位,不进行四舍五入

ROUND():取整,四舍五入

CEILING():取整,向上取整

FLOOR():取整,向下取整

 POWER(x,y):x的y次幂

SQRT(x):x的平方根

 

二、字符串函数:

substr( str, 初始位置,取多少位):截取字符串,初始位置从1开始

concat(str1,str2....):字符串的拼接

length(str):取str字符串的长度

trim():将字符串前后的空格去掉

Ltrim():去掉字符串前面的空格

Rtrim():去掉字符串后面的空格

replace(str,旧,新):将字符串str中 “旧” 全部用 “新” 来替换

insert(str,起始位置,长度len,新str):将字符串中起始位置处开始,len长度的子串替换为新str

 

三、日期和时间函数:

DAYOFWEEK(date):返回日期date的星期索引(1=星期天,2=星期一, …7=星期六)。

WEEKDAY(date):返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)

 

DAYOFMONTH(date):返回date的月份中的日期,在1到31范围内

DAYOFYEAR(date):返回date在一年中的日数, 在1到366范围内

 

MONTH(date):返回date的月份,范围1到12。

YEAR(date):返回日期中的年份

时分秒用法相同

 

日期的加减:

DATE_ADD(date,INTERVAL expr type) ,进行日期增加的操作,可以精确到秒
DATE_SUB(date,INTERVAL expr type) ,进行日期减少的操作,可以精确到秒

SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND; 

 

返回当前时间:

NOW():以‘YYYY-MM-DD HH:MM:SS’或YYYYMMDDHHMMSS格式返回当前的日期和时间 

sysdate():返回当前时间‘YYYY-MM-DD HH:MM:SS’

CURRENT_DATE:以‘YYYY-MM-DD’或YYYYMMDD格式返回今天日期值,取决于函数在一个字符串还是数字上下文被使用。select CURDATE(); 

CURRENT_TIME:以‘HH:MM:SS’或HHMMSS格式返回当前时间值。select CURTIME(); 

四、控制流程函数:

1.   case  when  then  else  end

方案一:

CASE value

  WHEN [compare-value] THEN result

  WHEN [compare-value] THEN result 

  ELSE result

END

 

方案二:

CASE

  WHEN [condition] THEN result

  WHEN [condition] THEN result 

  ELSE result

END 
在第一个方案的返回结果中, value=compare-value。而第二个方案的返回结果是第一种情况的真实结果。如果没有匹配的结果值,则返回结果为ELSE后的结果,如果没有ELSE 部分,则返回值为 NULL。

举个栗子:

方案一:

SELECT  age  CASE 

  WHEN   age<=18   THEN '未成年'
  WHEN   age>18   THEN '成年人'

  ELSE '年龄有误'

END;

方案二:

SELECT CASE 11

  WHEN 1 THEN 'one'
  WHEN 2 THEN 'two'

  ELSE 'more'

END;

 

2.  IF(expr1,v1,v2) 
如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为v1; 否则返回值则为 v2。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。

 

3.  IFNULL(v1,v2)

判null,如果null,则返v2

 

五、其他常用函数 :

格式化函数:FORMAT(x,n):

将数字x格式化,并以四舍五入的方式保留小数点后n位,结果以字符串形式返回

 

CAST(x AS type)CONVERT(x,type)这两个函数将x变成type类型。这两个函数只对BINARY、CHAR、DATE、DATETIME、TIME、SIGNED INTEGER、UNSIGNED INTEGER这些

类型起作用。但两种方法只是改变了输出值的数据类型,并没有改变表中字段的类型

 

 

posted on 2021-08-16 22:07  理想三旬_z  阅读(63)  评论(0编辑  收藏  举报

导航