【MySQL】函数

MySQL DATE 函数

MySQL Date 数据类型

DATEYYYY-MM-DD
DATETIMEYYYY-MM-DD HH:MM:SS
TIMESTAMPYYYY-MM-DD HH:MM:SS
YEARYYYY或YY

DATE_ADD()

  • 向日期添加指定的时间间隔
  • DATE_ADD(date, INTERVAL expr type)

例子:添加45天

OrderIdProductNameOrderDate
1Jarlsberg Cheese2008-11-11 13:23:44.657
select 
	DATE_ADD(OrderDate, INTERVAL 45 Day) AS OrderPayDate
from
	Orders

DATE_SUB()

  • 从日期减去指定的时间间隔
  • DATE_SUB(date, INTERVAL expr type)

例子:减去5天

select
	date_sub(orderdate, interval 5 day) as substractdate
from
	orders

DATEDIFF()

  • 返回两个日期之间的天数
  • DATEDIFF(date1, date2),只有日期部分参与计算
select	
	datediff("2008-11-30", "2008-11-29") as diffdate

TIMESTAMPDIFF()

  • timestampdiff(type, start_time, end_time)

type可以为second,minute,hour,day等

DATE_FORMAT()

  • 函数用于以不同的格式显示日期/时间数据
  • DATE_FORMAT(date, format)
select
	date_format(now(), '%Y-%m'),   # 2021-10
	date_format(now(), '%b %d %Y %h:%i %p'),
	date_format(now(), '%m-%d-%Y'),
	date_format(now(), '%d %b %y'),
	date_format(NOW(), '%d %b %Y %T:%f')

NOW()

  • 返回当前的日期和时间
  • NOW()
select now(), curdate(), curtime()

例子:创建带有日期时间列的表,并插入一条记录

CREATE TABLE Orders
(
	OrderId int NOT NULL,
    ProductName varchar(50) NOT NULL,
    OrderDate datetime NOT NULL DEFAULT NOW(),
    PRIMARY KEY (OrderId)
)
INSERT INTO 
Orders
	(ProductName)
Values
	('Jarlsberg Cheese')

CURDATE()

  • 返回当前的日期
  • CURDATE()

CURTIME()

  • 返回当前的时间
  • CURTIME()

DATE()

  • 提取日期部分
  • DATE(date)

例子:提取日期/时间表达式的日期部分

select
	productname,
	date(orderdate) as orderdate
from
	orders
where
	orderid=1

EXTRACT()

  • 返回日期/时间的单独部分
  • EXTRACT(unit FROM date)
select
	extract(year from orderdate) as orderyear,
	extract(month from orderdate) as ordermonth,
	extract(day from orderdate) as orderday
from
	orders
where orderid=1

MySQL 字符串函数

CONCAT()

在连接字符串的时候,只要其中一个是NULL,那么将返回NULL。

select concat('11', '22', '33');
select concat('11', '22', null);

表后追加

update
	table_name
set
	field=concat(field,'str')

表后追加

update
	table_name
set
	field=concat('str',field)

CONCAT_WS()

第一个参数是其他参数的分隔符

不会因为有NULL返回NULL

select concat_ws(',','a','b','c')

GROUP_CONCAT()

默认逗号分隔

select
	id, group_concat(name)
from
	mytable
group by 
	id;

可以指定分隔符,也可以去冗余

select
	id, group_concat(distinct name, ';')
from
	mytable
group by
	id;

也可以倒序

select
	id, group_concat(name order by name desc)
from
	mytable
group by
	id;

REPEAT()

  • 复制字符串
  • repeat(str, num)
select repeat('ab',2);

LEFT(), RIGHT()

  • 从左开始截取 left(str,length)
select
	left(content,200) as abstract
from
	my_content_t	
  • 从右开始截取 right(str,length)
select
	right(content,200) as abstract
from
	my_content_t

SUBSTRING()

  • substring(str,pos) 直到最后
  • substring(str,pos,length)

pos可为负数,表示倒数

  • substring(str FROM pos)
  • substring(str FROM pos FOR len)

SUBSTRING_INDEX()

  • substring_index(str,delim,count) count可负
select
	substring_index("www.w3cschool.cn",'.',2) as abstract
from 
	wiki_user

SUBSTR()

  • substr(string string, num start, num length)
# 截取trans_no字段中的前两位字符
select 
	substr(trans_no,1,2) "前两位"
from
	withdraw_amount_flow

MySQL 数学函数

所有数学函数在发生错误时,均返回NULL

ABS()

  • ABS(X) 返回X的绝对值

SIGN()

  • SIGN(X)符号函数
  • 取值为-1 0 1

MOD()

  • MOD(N,M)
  • 同 %

FLOOR()

  • FLOOR(X) 返回不大于X的最大整数值

CEILING()

  • CEILING(X) 返回不小于X的最小整数

ROUND()

  • ROUND(X) 四舍五入到最近的整数
  • ROUND(X,D) D表示几位小数

DIV

整除

SELECT 5 DIV 2;

EXP()

  • EXP(X) 自然对数底的X次方

LN()

  • LN(X) 返回X的自然对数

LOG()

  • LOG(X)
  • LOG(B,X)
  • LOG2(X)
  • LOG10(X)

POW()

  • POWER(X,Y)

SQRT()

  • SQRT(X)

PI()

COS(), SIN(), TAN()

select cos(pi());
select sin(pi());
select tan(pi()+1);

ACOS(), ASIN(), ATAN()

ATAN(Y,X)

ATAN2(Y,X)

COT(X)

RAND()

  • RAND()
  • RAND(N)

LEAST(X, Y, …)

  • 有两个或更多个参数,返回最小的参数。

GREATEST(X, Y, …)

  • 返回最大参数

DEGREES()

SELECT DEGREES(PI());

RADIANS()

SELECT RADIANS(90);

TRUNCATE()

  • TRUNCATE(X, D) 将数值X截到D个小数
SELECT TRUNCATE(122, -2); 100
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值