1. 程式人生 > 其它 >mysql詳解6:字串函式 日期函式 IF CASE

mysql詳解6:字串函式 日期函式 IF CASE

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