【MySQL】基本函数

数值函数

ROUND(数值) 四舍五入
ROUND(数值, 位数) 保留相应位数的四舍五入
TRUNCATE(数值,位数) 截断函数,截断至相应位数
CEILING(数值) 向上取整
FLOOR(数值) 向下取整
ABS(数值) 绝对值
RAND() 随机数,生成0-1间随机浮点数 

其它更多函数搜索 mysql numeric functions

字符串函数

LENGTH() 返回字符串长度
UPPER() 将字符串转化为大写
LOWER() 将字符串转化为小写 
LTRIM() 移除字符串前导的空白字符
RTRIM() 移除字符串尾随的空白字符
TRIM() 移除字符串前导或尾随的空白字符
LEFT(字符串,数值) 返回字符串从左起的对应数值的字符
RIGHT(字符串,数值) 返回字符串从右起的对应数值的字符
SUBSTRING(字符串,起始数值,长度) 返回字符串从起始数值开始长度为对应值的字符
LOCATE(要搜索的字符,字符串) 返回要搜索的字符在字符串的位置(不区分大小写),若要搜索的字符不是单个字符则会返回要搜索字符出现的第一个字符位置,若没有则会返回0。
REPLACE(字符串,被替换的字符,替换的字符) 将字符串中的指定字符替换成其它字符。
CONCAT(字符串,字符串) 将多个字符串合并为一个

注意:字符串中第一个字符是从1开始编号

日期函数

NOW() 返回当前时间和日期
CURDATE() 返回当前日期
CURTIME() 返回当前时间
YEAR() 返回括号内日期的年份(数值格式),MONTH,DAY,HOUR,MINUTE,SECOND同理
DAYNAME() 返回括号内字符串格式的星期数,MONTH等同理
EXTRACT( 时间单位 FROM 时间日期值) 从日期中提取对应单位的时间,如YEAR、MONTH等

格式化日期和时间

DATE_FORMAT(NOW(), '%m %d %Y')
y对应年份后两位数,Y对应年份四位数,d对应日期
m对应两位数月份,M对应月份名称
TIME_FORMAT(NOW(), '%H:%i %p')同理

更多搜索mysql date format string

计算日期和时间

DATE_ADD(NOW(), INTERVAL 1 DAY) 在NOW时间日期的基础上加了1 天,YEAR,MONTH等同理,数值也可以为负数表示过去。
DATE_SUB(NOW(), INTERVAL 数值 时间单位) 与上一个相似,不过是减去数值。
DATEDIFF(日期1, 日期2) 日期1-日期2,返回两个日期的间隔天数,不考虑具体时间点
TIME_TO_SEC() 返回时间点对应的秒数

IFNULL和COALESCE函数

IFNULL

USE sql_store;
SELECT
	order_id,
    IFNULL(shipper_id, 'NOT assigned') AS shipper
FROM orders

COALESCE

COALESCE(列,空返回值1,空返回值2) 若在该列中有空值,先返回1,若1非空返回1,若1也为空则返回2

USE sql_store;
SELECT
	order_id,
    COALESCE(shipper_id, comments, 'NOT assigned') AS shipper
FROM orders

 

 

IF函数

IF(expression, first, second) 如果表达式为真返回第一个结果,如果表达式为假则返回第二个结果

USE sql_store;
SELECT 
	order_id,
    order_date,
    IF(YEAR(order_date) = 2019, 'Active','Archived') AS category
FROM orders

前面用UNION实现了同样的功能,可以看出IF更简单。 

CASE运算符 

USE sql_store;
SELECT 
	order_id,
    order_date,
    CASE
		WHEN YEAR(order_date) = 2019 THEN 'Active'
        WHEN YEAR(order_date) = 2019-1 THEN 'Last Year'
        WHEN YEAR(order_date) < 2019-1 THEN 'Archived'
        ELSE 'Future'
	END AS category
FROM orders

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值