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

tech2024-03-30  65

数值函数

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'
最新回复(0)