日期函數(shù)
返回當(dāng)前日期,只包含年月日 select curdate()
返回當(dāng)前時(shí)間哺徊,只包含時(shí)分秒 select curtime()
返回當(dāng)前的日期和時(shí)間,年月日時(shí)分秒全都包含 select now()
提取具體日期類(lèi)型
- year() yearweek() ,hour(),month()等等
- select year(now()) as '年',yearweek(now()) as '年,周',hour(now()) as '周',minute(now()) as '小時(shí)',
month(now()) '月',monthname(now()) '月名字',dayofmonth(now()) as '當(dāng)月多少日'
- EXTRACT() 函數(shù)用于返回日期/時(shí)間的單獨(dú)部分乾闰,比如年落追、月、日涯肩、小時(shí)轿钠、分鐘等等巢钓。
- (select extract(year from now()),extract(month from now()),extract(day from now()),extract(hour from now()),extract(minute from now()))
日期格式
- DATE_FORMAT(date,fmt)函數(shù):按字符串 fmt 格式化日期 date 值 (select date_format(now(),'%Y-%m-%d'))
日期運(yùn)算
date_add(date,interval number dateType) example (select date_add(now(),interval 2 year) as 'add 2 year date')
(select date_add(now(),interval -2 hour) as 'add 2')也可以傳入負(fù)數(shù)即回到過(guò)去某個(gè)時(shí)間date_sub(date,interval number dateType) example (select date_sub(now(),interval 2 year))
datediff(date,date) 計(jì)算兩個(gè)日期之間相差的天數(shù) (select datediff(now(),date_add(now(),interval 2 month)) as '計(jì)算兩個(gè)日期之間相差天數(shù)')
流程函數(shù)
- if 函數(shù)
create table salary (userid int,salary decimal(9,2));
insert into salary values(1,1000),(2,2000), (3,3000),(4,4000),(5,5000), (1,null);
- (select if(s.salary>2000,'high','low'),s.salary from salary s)
- IFNULL(value1,value2)函數(shù):這個(gè)函數(shù)一般用來(lái)替換 NULL 值的,我們知道 NULL 值是不能參與數(shù)值運(yùn)算的
- (select ifnull(s.salary,0),s.salary from salary s)當(dāng)檢測(cè)到值的時(shí)候用0代替
數(shù)值函數(shù)
- ABS(x)函數(shù):返回 x 的絕對(duì)值
- select abs(-56),abs(round(rand()*10))
- cell(x)函數(shù) 返回大于 x 的最大整數(shù)值 相當(dāng)于向上取
- SELECT ceil(0.6),ceiling(0.3),ceil(round(rand()))
- floor()返回小于 x 的最大整數(shù)值 相當(dāng)于向下取
- SELECT floor(0.6),floor(0.3),floor(round(rand()))
- mod(x,y) 返回 x/y 的模
- SELECT mod(5,3)
- rand() 返回 0 到 1 內(nèi)的隨機(jī)值
- ROUND(x,y) 返回參數(shù) x 的四舍五入的有 y 位小數(shù)的值
- SELECT round(2.5,3)
- sum()函數(shù)
- select sum(f.f_price) as '總價(jià)格' from fruits f
字符串函數(shù)
- CANCAT(S1,S2,…Sn) 連接 S1,S2,…Sn 為一個(gè)字符串
- SELECT concat('hello','wrold'),concat(curdate(),' ',curtime())
- INSERT(str,x,y,instr) 將字符串 str 從第 x 位置開(kāi)始疗垛,y 個(gè)字符長(zhǎng)的子串替換為字符串 instr(可以用作修改和刪除以及增加)
- SELECT insert('Highlights of Premier Li''s news conference',11,0,'---') 在index=11 取0個(gè)字符串替換為xxx
- REPEAT(str,x) 返回 str 重復(fù) x 次的結(jié)果
- select REPEAT('Tech aims to help restless sleepers \n',3) 字符串重復(fù)3次
- REPLACE(str,a,b)函數(shù):用字符串 b 替換字符串 str 中所有出現(xiàn)的字符串 a症汹。
- select replace('hello_world!','_',' ') 把下劃線(xiàn)替換為空格
- SUBSTRING(str,x,y)函數(shù):返回從字符串 str 中的第 x 位置起 y 個(gè)字符長(zhǎng)度的字串。此函數(shù)經(jīng)常用來(lái)對(duì)給定字符串進(jìn)行字串的提取(ps也可以用作隨機(jī)字符串)
- select substring('Century-old folding fan store attracts foreign apprentice',12,8) 截取字符串函數(shù)
- length() 獲取字符串長(zhǎng)度 select length(''+uuid_short()) as uuidShort , length(uuid()) 這里使用了mysql的uuid