重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
求如何用mysql实现计算上下两条记录的差的方法。
创新互联公司企业建站,十多年网站建设经验,专注于网站建设技术,精于网页设计,有多年建站和网站代运营经验,设计师为客户打造网络企业风格,提供周到的建站售前咨询和贴心的售后服务。对于网站设计制作、成都做网站中不同领域进行深入了解和探索,创新互联在网站建设中充分了解客户行业的需求,以灵动的思维在网页中充分展现,通过对客户行业精准市场调研,为客户提供的解决方案。
如下参考:
1.创建一个表并插入数据,如下图所示。
2.按字段名顺序从表名中选择*,如下图。
3.根据班级分组程度(groupby),将数据分为三类:肉类、蔬菜和水果。
4.按类分组后,对结果进行处理,分别计算三个类的总金额。在本例中,sum是mysql提供的一个内置函数(聚合函数),它是统计组合的。
5.分组之后,可以使用聚合函数执行一系列查询操作,询问每个类中有多少个查询操作。
6.组后面跟着过滤器,如下所示。
结论:一个标准的SQL查询语句。
前提:假设起始时间:start_at,结束时间:end_at。
现在根据不同的字段类型说明如何写。
1 - INT类型,存储时间戳
SELECT * FROM table_name WHERE ( end_at - start_at ) 3600;
2 - DATETIME类型
假如 start_at 格式类似于 “2020-10-01 12:13:14”。那么使用函数进行求差值:
SELECT * FROM table_name WHERE TIMESTAMPDIFF(SECOND, start_at, end_at) 3600;
以上。
先贴出来我的脚本:
#/bin/bash
User="test"
Pass="123456"
Hos="192.168.133.167"
Da=`date `
record_path="/tmp/daily_r.txt"
MYSQL="/usr/mysql/bin/mysql"
echo "采集速度时间间隔超过半天即为不正常" $record_path
$MYSQL -u$User -p$Pass -h$Hos -e "select TIMESTAMPDIFF(second, createtime, pubdate) as '相差秒数',createtime,pubdate,keyword_tx from adresource_test.tbl_newscontent_test order by d_id desc limit 1\G;" $record_path
然后我解释下脚本含义,首先我这个脚本是统计我adresource_test 表中的关于新闻内容的一个采集时间一个入库时间的差值,就此来判断我的数据入库程序正常与否。
User是数据库用户名,Pass 是数据库密码 Hos是数据库地址Da 是我要记录一个日期,比对当前日期,也相当于留个日志 record_path 日志记录位置
MYSQL是mysql的bin目录,防止命令找不到。
3
计算tbl_test 表中的两个字段一个是发布时间一个是创建时间,使用变量TIMESTAMPDIFF 来计算二者的差值,
creattime - pubdate。minute的意思是以分钟来做结果单位,limit 2 是两条记录