ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mysql详解6:字符串函数 日期函数 IF CASE

2021-07-30 17:34:35  阅读:142  来源: 互联网

标签:CASE 函数 mysql select YEAR date NOW order SELECT


select ROUND(5.73,2) 四舍五入 select ROUND(5.45,1) 5.5
select TRUNCATE(5.7345,2) 保留两位小数 select TRUNCATE(5.45,1) 5.4
select CEILING(5.2) 取大于等于的最近整数 6
select FLOOR(5.2) 取小于等于的最近整数 5
select ABS(-5.2) 取绝对值
select RAND() 0和1之间的随机值

select ROUND(rand()*(max-min)+min) 取指定范围的随机数
select FLOOR(rand()*(max-min)+min) 取指定范围的随机整数

 

字符串函数
UPPER() LOWER()
SELECT LTRIM(" SKY") 去除前面多余空格
SELECT TRIM(" SKY") 去除多余空格
select LEFT("SKYTTT",3) 截取前面几个 SKY
select RIGHT("SKYTTT",3) 截取后面几个 TTT
select substring("SKYTTT",3) 从第三个开始截取剩下的全部 YTTT
select substring("SKYTTT",3,2) 从第3个截取2个
select LOCATE("N","kindefgaten") 3 从字符串中搜索指定字母的位置 第一个n的位置为3 如果没有返回0
select REPLACE("kindergaten","gaten","gaden") 替换字符串中的部分
select CONCAT("FIRST","last") 连接字符串

 

日期函数
SELECT NOW(), CURDATE(), CURTIME()
2021-06-18 13:26:28 2021-06-18 13:26:28
当前时间 当前日期 当前时分秒
SELECT Year(Now()) 当前年份
SELECT MONTHnAME(Now()) 当前月份名字
SELECT EXTRACT(DAY FROM Now()) 18
例:
SELECT *
FROM orders
where YEAR(order_date) >=YEAR(NOW())

格式化日期和时间
select DATE_FORMAT(NOW(),'%M %d %Y')
June 18 2021
select DATE_FORMAT(NOW(),'%H: %i %p')
14: 08 PM
计算日期和时间
SELECT DATE_ADD(NOW(),INTERVAL 1 YEAR) 增加1年
SELECT DATEDIFF('2019-01-05 09:00','2019-01-01 17:00') 前面的减去后面的
SELECT TIME_TO_SEC('09:02')-TIME_TO_SEC('09:00') 120 按照0点开始的秒数计算


IFNULL
select
order_id,
IFNULL(shipper_id,'Not assighed') as shipper
from orders 如果是空就会返回预设的值

COALESCE
select
order_id,
COALESCE(shipper_id,comments,'Not assighed') as shipper
from orders 如果为空,返回预设值,如果预设值为空,返回未分配

 

IF函数
select
order_id,
order_date,
IF(YEAR(order_date)=YEAR(NOW()),'actice','archived')
from orders
如果满足条件 返回active 否则archived

 


case函数
select
order_id,
case
when YEAR(order_date) =Year(NOW()) THEN 'ACTIVE'
when YEAR(order_date) =YEAR(NOW()) -1 THEN "LAST YEAR"
when YEAR(order_date) <YEAR(NOW()) -1 THEN 'Archived'
ELSE 'future'
end as category
from orders

 

SELECT CONCAT(first_name,'',last_name) as customer,
points,
case
when points>3000 then 'gold'
when points>=2000 then 'silver'
else 'Bronze'
end as category
from customers

 

标签:CASE,函数,mysql,select,YEAR,date,NOW,order,SELECT
来源: https://www.cnblogs.com/yxj808/p/15080678.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有