| DATE | YYYY-MM-DD |
|---|---|
| DATETIME | YYYY-MM-DD HH:MM:SS |
| TIMESTAMP | YYYY-MM-DD HH:MM:SS |
| YEAR | YYYY或YY |
DATE_ADD(date, INTERVAL expr type)例子:添加45天
| OrderId | ProductName | OrderDate |
|---|---|---|
| 1 | Jarlsberg Cheese | 2008-11-11 13:23:44.657 |
select
DATE_ADD(OrderDate, INTERVAL 45 Day) AS OrderPayDate
from
Orders
DATE_SUB(date, INTERVAL expr type)例子:减去5天
select
date_sub(orderdate, interval 5 day) as substractdate
from
orders
DATEDIFF(date1, date2),只有日期部分参与计算select
datediff("2008-11-30", "2008-11-29") as diffdate
timestampdiff(type, start_time, end_time)type可以为second,minute,hour,day等
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()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()CURTIME()DATE(date)例子:提取日期/时间表达式的日期部分
select
productname,
date(orderdate) as orderdate
from
orders
where
orderid=1
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
在连接字符串的时候,只要其中一个是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)
第一个参数是其他参数的分隔符
不会因为有NULL返回NULL
select concat_ws(',','a','b','c')
默认逗号分隔
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(str, num)select repeat('ab',2);
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(str,pos) 直到最后substring(str,pos,length)pos可为负数,表示倒数
substring(str FROM pos)substring(str FROM pos FOR len)substring_index(str,delim,count) count可负select
substring_index("www.w3cschool.cn",'.',2) as abstract
from
wiki_user
substr(string string, num start, num length)# 截取trans_no字段中的前两位字符
select
substr(trans_no,1,2) "前两位"
from
withdraw_amount_flow
所有数学函数在发生错误时,均返回NULL。
ABS(X) 返回X的绝对值SIGN(X)符号函数MOD(N,M)FLOOR(X) 返回不大于X的最大整数值CEILING(X) 返回不小于X的最小整数ROUND(X) 四舍五入到最近的整数ROUND(X,D) D表示几位小数整除
SELECT 5 DIV 2;
EXP(X) 自然对数底的X次方LN(X) 返回X的自然对数LOG(X)LOG(B,X)LOG2(X)LOG10(X)POWER(X,Y)SQRT(X)select cos(pi());
select sin(pi());
select tan(pi()+1);
SELECT DEGREES(PI());
SELECT RADIANS(90);
TRUNCATE(X, D) 将数值X截到D个小数SELECT TRUNCATE(122, -2); 100