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

本文介绍了MySQL中的流程控制函数如IF、IFNULL和CASE,以及常用的字符串、数值和日期函数,如CONCAT、LOWER、UPPER等,并通过实例展示了如何在SQL查询中运用这些函数。
摘要由CSDN通过智能技术生成

一、流程控制函数

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
IDWTTKBH
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()函数

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值