mysql 常用内置函数(时间 条件等)

数值函数

Select round(5.74,args) args表示保留的精读 , 1表示保留小数点后一位
Select ceiling(7.1)
Select floor(6.9)
select abs();
select rand() 0-1之间的一个数

字符串函数

Select length('sky');
Select lower('SKY');
Select upper('sky');
select ltrim('     sky');
Select rtrim('sky         ');
select trim('            sky      ');
select left('kindergarten',4);
select right('kindergarten',6);
select substring('kindergerten',1,4);
select locate('n','kindergerten'); -- 返回目标字符串的下标,找不到返回0
select replace('this is a girl','this','that');
select concat('z','qj');-- select concat('first_name',' ','last_name');

日期函数

 select now();-- 返回当前时间 YY-MM-DD HH-mm-ss
 select current_timestamp(); -- 同上
 select curdate();-- 返回当前日期
 select curtime();-- 返回当前时间
 
 
 
select year(now()); -- 返回 2020同理 month() day() hour() minute() , second()
select dayname(now()) -- 返回天的名字,一个字符串。 e.g  monday tuesday 同理 monthname()

extract(unit from date);-- 该函数用于返回日期的某一个单独部分
-- unit可以是
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH


Select * 
from orders
where year(order_date) >= year(now())

格式化日期和时间

select time_format(NOW(),'%H:%i %p') -- 15:39 PM
select date_add(now() ,interval 1 day); -- 一天后的时间  之前的时间就传入负值
select datediff(d1,d2) -- 返回日期差

Select order_id,
ifnull(shipper_id, 'not assigned') as shipper
from orders
-- 以上 如果shipper_id 是 null 会返回'not assigned' 
coalesce('condition1','condition2'...,null);
-- mysql 引擎会检查所有的条件,当条件被满足,就返回当前的condition,否则返回最后的null

-- 联系
select concat(first_name,' ',last_name) as customer,
coalesce(phone,'unkonwn')
from customers


IF函数

IF(EXP,first,second) -- 如果 exp 为真 返回 first, 否则返回second



 select 
 order_id,
 order_date,
 if(year(order_date) = year ( now()),'active' , 'archived') as status
 from orders

CASE

因为if只能判断一个条件

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 'previous year'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值