在MySQL中常用到的函数解析-流程控制函数-字符串函数-日期函数-数值函数

一、流程控制函数

1.1 IF函数

if(value,t,f):如果value的值是true,则返回t否则返回f

select if(FALSE,'ok','false') as "结果"

1.2 IFNULL 函数(value1,value2)

IFNULL(VALUE1,VALUE2):如果VALUE1的值不为空(特指 NULL),则返回VALUE1,否则返回VALUE2

select IFNULL(NULL,"value") //返回value

1.3 CASE函数

CASE [] WHEN [val1] THEN [res1] .... ELSE [default] END :如果expr等于val1,返回res1,. . . 否则返回default的默认值

SELECT
(CASE WTTKBH WHEN '物料' THEN '严重词条' when '环境' THEN '严重词条' ELSE '不严重词条' END) as '词条'
FROM
layerd_v v
ID WTTKBH
1 物料
2 环境
3 物料
4 设备
5 环境
6 物料
7 设备
8 设备
9 设备

二、常用MySQL函数

2.1字符串函数

函数
CONCAT(S1,S2…Sn) 字符串拼接,将S1,S2,Sn拼接成一个字符串
LOWER(str) 将字符串str全部转为小写
UPPER(str) 将字符串str全部转为大写
LPAD(str,n,pad) 左填充,用字符串pad对str的左边进行填充,达到n个字符串长度
RPAD(str,n,pad) 右填充,用字符串pad对str的右边进行填充,达到n个字符串长度
TRIM(str) 去掉字符串头部和尾部的空格
SUBSTRING(str,start,len) 返回从字符串str从start位置起的len个长度的字符串
#CONCAT(S1,S2....Sn)字符串拼接,将S1,S2,Sn拼接成一个字符串
SELECT CONCAT('z','b','c')
#LOWER(str)将字符串str全部转为小写
SELECT LOWER('QWE')
#UPPER(str)将字符串str全部转为大写
SELECT UPPER('qwe') 
#LPAD(str,n,pad)左填充,用字符串pad对str的左边进行填充,达到n个字符串长度
SELECT LPAD(03,5,0)
#RPAD(str,n,pad)右填充,用字符串pad对str的右边进行填充,达到n个字符串长度
SELECT RPAD(3,5,0)
#TRIM(str)去掉字符串头部和尾部的空格
SELECT TRIM(' we ')
#SUBSTRING(str,start,len)返回从字符串str从start(第一位是1)位置起的len个长度的字符串
SELECT SUBSTRING('hello word',1,5)

2.2 数值函数

函数 功能
CEIL(x) 向上取整
FLOOR(x) 向下取整
MOD(x,y) 返回x/y的模
RAND() 返回0~1内的随机数
ROUND(x,y) 求参数x的四舍五入的值,保留y位小数
# CEIL(x)     向上取整
SELECT CEIL(3.5)                        
# FLOOR(x)    向下取整
SELECT FLOOR(3.5)                           
# MOD(x,y)    返回x/y的模
SELECT MOD(9,5)                    
# RAND()      返回0~1内的随机数 
SELECT RAND()*100 //这就是返回0~100以内的了             
# ROUND(x,y)  求参数x的四舍五入的值,保留y位小数 
SELECT ROUND(3.14159,2)
SELECT ROUND(RAND()*100,0)

2.3 日期函数

函数 功能
CURTIME() 返回当前时间
NOW() 返回当前日期和时间
YEAR(date) 获取指定date的年份
MONTH(date) 获取指定date的月份
DAY(date) 获取指定date的日期
DATE_ADD(date, INTERVAL expr type) 返回一个日期/时间值加上一个时间间隔expr后的时间值
DATEDIFF(date1,date2) 返回起始时间date1和 结束时间date2之间的天数
CURDATE() 返回当前日期
#CURTIME()                           返回当前时间 时分秒   
SELECT CURTIME()                		 #15:40:22
#NOW()                               返回当前日期和时间       
SELECT NOW()          							 #2024-01-22 15:40:05
#YEAR(date)                          获取指定date的年份
SELECT YEAR('2024-01-03')            #2024    
#MONTH(date)                         获取指定date的月份
SELECT MONTH('2024-01-03')           #1         
#DAY(date)                           获取指定date的日期
SELECT DAY('2024-01-03')             #3   
#DATE_ADD(date, INTERVAL expr type)  返回一个日期/时间值加上一个时间间隔expr后的时间值
SELECT DATE_ADD('2024-01-01',INTERVAL 70 DAY) #2024-03-11
SELECT DATE_ADD('2024-01-01',INTERVAL 2 MONTH) #2024-03-01
SELECT DATE_ADD('2024-01-01',INTERVAL 3 WEEK) #2024-01-22
#DATEDIFF(date1,date2)               返回起始时间date1和 结束时间date2之间的天数
SELECT DATEDIFF(NOW(),'2024-02-09')  #-18
#CURDATE()                           返回当前日期
SELECT CURDATE()                     #2024-01-22

关于DATEDIFF函数的详细用例在我另外一篇文章中有详细的解释 有兴趣的可以看一下

MySQL中的DATEDIFF()函数

你可能感兴趣的:(MySQL,mysql,数据库)