MySQL分割数据
引言一般来说讲,提到数据拆分,可以归结为两个层面:一是垂直拆分,二是水平拆分。这里我们来讨论下垂直拆分。垂直拆分是以数据库、表、列等为单位进行拆分的方法。正文MySQL里垂直拆分可以细分为:垂直拆库(...
2024.11.15MySQL自带的日期函数TIMESTAMPDIFF计算两个日期相差的秒数、分钟数、小时数、天数、周数、季度数、月数、年数,当前日期增加或者减少一天、一周等等。
select TIMESTAMPDIFF(类型,开始时间,结束时间)
相差的秒数:
select TIMESTAMPDIFF(SECOND,‘1993-03-23 00:00:00‘,DATE_FORMAT(NOW(), ‘%Y-%m-%d %H:%i:%S‘))
相差的分钟数:
select TIMESTAMPDIFF(MINUTE,‘1993-03-23 00:00:00‘,DATE_FORMAT(NOW(), ‘%Y-%m-%d %H:%i:%S‘))
相差的小时数:
select TIMESTAMPDIFF(HOUR,‘1993-03-23 00:00:00 00:00:00‘,DATE_FORMAT(NOW(), ‘%Y-%m-%d %H:%i:%S‘))
相差的天数:
select TIMESTAMPDIFF(DAY,‘1993-03-23 00:00:00‘,DATE_FORMAT(NOW(), ‘%Y-%m-%d %H:%i:%S‘))
相差的周数:
select TIMESTAMPDIFF(WEEK,‘1993-03-23 00:00:00‘,DATE_FORMAT(NOW(), ‘%Y-%m-%d %H:%i:%S‘))
相差的季度数:
select TIMESTAMPDIFF(QUARTER,‘1993-03-23 00:00:00‘,DATE_FORMAT(NOW(), ‘%Y-%m-%d %H:%i:%S‘))
相差的月数:
select TIMESTAMPDIFF(MONTH,‘1993-03-23 00:00:00‘,DATE_FORMAT(NOW(), ‘%Y-%m-%d %H:%i:%S‘))
相差的年数:
select TIMESTAMPDIFF(YEAR,‘1993-03-23 00:00:00‘,DATE_FORMAT(NOW(), ‘%Y-%m-%d %H:%i:%S‘))
获取当前日期:
select NOW()
select CURDATE()
当前日期增加一天:
select DATE_SUB(CURDATE(),INTERVAL -1 DAY)
当前日期减少一天:
select DATE_SUB(CURDATE(),INTERVAL 1 DAY)
当前日期增加一周:
select DATE_SUB(CURDATE(),INTERVAL -1 WEEK)
当前日期增加一月:
select DATE_SUB(CURDATE(),INTERVAL -1 MONTH)
select DATE_SUB(NOW(),INTERVAL -1 MONTH)
FRAC_SECOND 毫秒
SECOND 秒
MINUTE 分钟
HOUR 小时
DAY 天
WEEK 星期
MONTH 月
QUARTER 季度
YEAR 年
例:一、业务需求:需要计算用户平均登录时长
二、语法介绍
1、语法:TIMESTAMPDIFF
TIMESTAMPDIFF(SECOND,start_time,end_time)
2、说明: (start_time与end_time的格式是:2021-09-01 18:50:52,)
计算start_time与end_time之间的整数差。其结果的单位由SECOND参数给出(我写的是秒)。
该参数必须是以下值的其中一个:
FRAC_SECOND。表示间隔是毫秒
SECOND。秒
MINUTE。分钟
HOUR。小时
DAY。天
WEEK。星期
MONTH。月
QUARTER。季度
YEAR。年
三、具体写法
计算出用户平均登录时长单位分保留两位小数
求和单位(秒):SECOND
时间差:TIMESTAMPDIFF
求和:SUM
保留两位小数:FORMAT
总条数:count(*)
select FORMAT((SUM(TIMESTAMPDIFF(SECOND,start_time,end_time))/count(*)/60),2) tiem FROM ump_user WHERE id = ‘2113e4b85d38413c8eb8e8e676aff7b5‘
引言一般来说讲,提到数据拆分,可以归结为两个层面:一是垂直拆分,二是水平拆分。这里我们来讨论下垂直拆分。垂直拆分是以数据库、表、列等为单位进行拆分的方法。正文MySQL里垂直拆分可以细分为:垂直拆库(...
2024.11.15做压测的时候有的接口非常的慢,接口的响应时间超过了2秒以上,在运维的监控系统Skvwalking中,在展示的报表中可以看到是哪一个接口比较慢,分析这个接口,可以看到哪部分比较慢,从而知道SQL的具体的...
2024.11.15在 MySQL 中,COUNT() 函数用于统计满足特定条件的记录数。COUNT() 是一个聚合函数,它返回一组记录中的行数。你可以使用 COUNT() 函数计算表中的行数、满足某个条件的行数或者具有...
2024.11.15年底项目验收很多,也就碰到了各种问题,以前只在埋头撸代码,根本不知道原因。今天第一次听到一个词“审计”,真的第一次听到,在我心中,感觉程序员也要涉及审计了?兜兜转转,百度Google看到了一些讲审计的...
2024.11.07前端大佬问我后端小白查最近10分钟的数据,一开始我想到的是直接用between and或者就可以了,但是可能是想要最近的10分钟,那么这个数就不太好写清楚,只能是当前时间-10分钟这种操作,对于mys...
2024.11.15