【MySQL】常用计算函数

判断

IF语句

IF(condition, true_statement, false_statement);
  • condition: 条件表达式,可以是任何返回布尔值的表达式
  • true_statement: 如果条件为真,则执行的语句
  • false_statement: 如果条件为假,则执行的语句

CASE语句

CASE
	WHEN express1 THEN result1
	WHEN express2 THEN result2
	...
	ELSE result
END;
  • 若express1为真,返回result1
  • 若express2为真,返回result2
  • 否则,返回result

3.IFNULL函数

IFNULL(express, value);
  • 若express为NULL,则返回value值

日期

TIMESTAMPDIFF() 函数

TIMESTAMPDIFF() 函数返回两个日期或时间表达式之间的差,以指定的单位返回。

SELECT TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2)
FROM your_table;

# 计算两个日期之间的天数差异
SELECT TIMESTAMPDIFF(DAY, '2023-01-01 10:00:00', '2023-01-31 16:00:00') AS days_difference;
  • unit 是你要计算的间隔单位,如 SECOND, MINUTE, HOUR, DAY, MONTH, YEAR 等
  • datetime_expr1 和 datetime_expr2 是你要比较的日期或时间表达式

UNIX_TIMESTAMP() 和 FROM_UNIXTIME() 计算秒数差异

如果你需要将时间间隔转换为,可以使用 UNIX_TIMESTAMP() 将日期时间转换为UNIX时间戳,然后进行计算。
FROM_UNIXTIME(“timestamp”) -> yyyy-mm-dd hh:mm:ss
UNIX_TIMESTAMP(“yyyy-mm-dd hh:mm:ss”) -> timestamp

SELECT UNIX_TIMESTAMP(datetime_expr2) - UNIX_TIMESTAMP(datetime_expr1) AS seconds_difference;

# 秒数 18000
SELECT UNIX_TIMESTAMP('2023-01-01 15:00:00') - UNIX_TIMESTAMP('2023-01-01 10:00:00') AS seconds_difference;

过去x小时/天,未来x小时/天

select NOW(), 
date_sub(NOW(), INTERVAL 5 HOUR) as '-5h', 
date_add(NOW(), INTERVAL 5 HOUR) '+5h', 
date_sub(CURDATE(), INTERVAL 1 DAY) '-1d', 
date_add(CURDATE(), INTERVAL 1 DAY) '+1d'
NOW()-5h+5h-1d+1d
2025-01-31 15:07:532025-01-31 10:07:532025-01-31 20:07:532025-01-302025-02-01

字符串

统计字符个数

# 计算column字段的字符个数
CHAR_LENGTH(column)

数学计算

ROUND

# 保留column字段两位小数,四舍五入
ROUND(column, 2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值