MySql数据库查询每半小时内最新一组数据 20C

如何查询出每半小时最新的一组数据,取出并插入到新的表中?求高手解答!谢谢!

1

16个回答

https://blog.csdn.net/zmxiangde_88/article/details/8011661,按照插入时间排序,然后insert into select就可以了,程序需要用到计时器,最好记录一下最后的时间,以免有重复数据
或者https://www.cnblogs.com/phpper/p/7587031.html

0

不知道你最新的数据和旧数据的定义,例如:数据库原来就有1,2,3,4,5,6,7,8,9条数据,然后在半个小时内又插入了10,11,12,13,14,15,这些数据,你是要最新的10,11,12,13,14,15呢,还是直接就只要最新的数据15

0
qq_21405949
不知火猪 回复qq_40125525: 你可以新加一个字段qid,每添加一组数据qid+1
10 个月之前 回复
qq_40125525
qq_40125525 回复qq_38342475: 能不能贴出一些代码啊 比如设置每半小时最大时间 小白 不太明白 谢谢了!
10 个月之前 回复
qq_38342475
黑羽真兔 回复qq_40125525: 我看了一下你的数据库,里面有一个字段是data_time,你可以根据时间段去查询当前时间段的最大时间。
10 个月之前 回复
qq_40125525
qq_40125525 回复qq_40125525: 我贴图在楼下了
10 个月之前 回复
qq_40125525
qq_40125525 回复qq_38342475: 是的 没有设置主键
10 个月之前 回复
qq_38342475
黑羽真兔 回复qq_38342475: 你说一样的id,不是主键,对吗?
10 个月之前 回复
qq_40125525
qq_40125525 回复qq_38342475: 那如果用这个方法如何查询每一个半小时的最大id呢
10 个月之前 回复
qq_38342475
黑羽真兔 回复qq_40125525: 不会吧,数据库中的id不可能重复的啊,怎么会一样呢?奇怪。。
10 个月之前 回复
qq_40125525
qq_40125525 回复qq_38342475: 这个方法我想过 但我的id都是一样的没法取id值判断
10 个月之前 回复
qq_38342475
黑羽真兔 查询这个数据
10 个月之前 回复
qq_38342475
黑羽真兔 回复qq_38342475: 例如:先去查询数据库中最大的id:select max(id) from title,获取到最大的id,然后再去根据或去的最大id
10 个月之前 回复
qq_38342475
黑羽真兔 mysql数据库中的表应该有设置自增列的吧,你可以直接去查询数据库表中最大的自增长列就好了
10 个月之前 回复
qq_38342475
黑羽真兔 回复qq_40125525: 那你查询到了最新的数据要干什么呢?
10 个月之前 回复
qq_40125525
qq_40125525 直接就是15
10 个月之前 回复

用crontab(计划任务)可以实现你的要求,设置好每半小时执行你的查询插入程序就可以了

0

用insert插入into select查询的复合操作语句就可以啦

0
qq_40125525
qq_40125525 请问select 每一个半小时内的最新数据怎么写呢
10 个月之前 回复

不求采纳,只是对这个有个想法:
一、在总数据表中创建新的字段is_change,用以确认是否被更新
二、用户插入数据时,is_change为空
三、专门写一个程序每隔半小时,根据系统时间的getTime()返回的long值创建新表
四、查询数据表中is_change为空的记录,存储到新表中,同时将is_change更改为非空

0
qq_40125525
qq_40125525 回复zhaoxuyang1997: 好复杂额
10 个月之前 回复
zhaoxuyang1997
zxy97 不好意思,is_change应该是is_query,表示是否被查询过
10 个月之前 回复

这是我的数据库,id都是一样的 图片说明

0

数据库设计一个字段,用来记录insert 的时刻,做的程序写一个定时任务,每隔这个时间来查询数据库这个字段,判断下就知道了啊

0

思路是写一个脚本,用现在的时间减去插入数据的时间,如果发现减去后的时间小于半小时,就是最新的半小时内的数据。

0

METHOD :
SELECT * FROM table_name WHERE field name NOW()-INTERVAL 2 HOUR;

0

不知道楼主会Java么 直接写一个多线程将他弄成Daemon后台进程然后对数据库CRUD操作即可

0
共16条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
MySQL查询一小时之内的数据
 (第一种方法)SELECT * FROM 表名 WHERE 字段名>NOW()-INTERVAL 2 HOUR; (第二种方法)SELECT * FROM 表名 WHERE 字段名 > DATE_SUB(NOW(), INTERVAL 60 MINUTE);
MySQL--取最近一小时内每五分钟的合计数据
FLOOR(X) :返回不大于X的最大整数值 DATE_SUB() 函数从日期减去指定的时间间隔。 DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。
Mysql 查询一天中每半小时记录的数量
SELECT HOUR(e.time)as Hour,FLOOR(MINUTE(e.time)/30) as M, COUNT(*) as Count FROM error_log e WHERE e.date = '2017-09-02' GROUP BY FLOOR(MINUTE(e.time)/30),HOUR(e.time) ORDER BY Hour(e.time);floor函数
每两小时分组查询
SELECT sum(water_flow) as water_flow,created_time, CASE WHEN DATE_FORMAT(created_time ,'%H') >= 0 and DATE_FORMAT(created_time ,'%H') < 2 then '2' WHEN DATE_FORMAT(created_time ,'%H') >= 2 an
查询数据库时 采用 分组查询并 获取分组后组中最新的一条数据
使用原生可采用: SELECT * FROM lease_note ln WHERE ln.delete_time IS NULL AND ln.id = ( SELECT lns.id FROM lease_note lns WHERE lns.contract_id = ln.contract_id ORDER BY create_time DESC...
Oracle 查询:一小时内、一天内、一周内等
有时,我们经常会遇到需要我们查询一小时内、一天内、一周内等时间段的数据。这时,就可以用oracle提供的sysdate。-- 查询一小时内的数据 select * from XXXX_Table where sysdate-1/24 <= ApplyTime -- 查询一天内的数据 select * from XXXX_Table where sysdate-1 <= ApplyTime -- an
mysql 查询一小时之内的数据
(第一种方法)SELECT * FROM 表名 WHERE 字段名>NOW()-INTERVAL 2 HOUR; (第二种方法)SELECT * FROM 表名 WHERE 字段名 > DATE_SUB(NOW(), INTERVAL 60 MINUTE);
Mysql统计每个小时或半小时数据的数量
Mysql 查询一天中,每个小时数据的数量 Mysql 查询一天中每半小时记录的数量
MySQL 取出每个分组中最新的一条数据(ID最大)
场景:由于一个摄像头管理一个范围,且管理的某个人可以多次犯规。故,一个摄像头可以上报有多个事件,多个事件可能同时上报,可能有先后顺序。 需求:现地图只显示有事件摄像头的最新一条事件信息,故,需要ID倒序后,以摄像头分组,以此获得摄像头最新的一条事件信息。(这里以ID倒序而不以创建时间倒序,是有一定优势的)。 思路:先ID(时间)倒序,后分组。 说明: 如果是单表查询,默认分组后是ID最大的...
mysql5.7分组查询group by,分组查询并且显示每组时间最新的一条记录
SELECT ** FROM t_group_album a LEFT JOIN ( SELECT f_aid, COUNT(f_aid) pictureNum, group_concat( f_image_url ORDER BY f_update_time DESC ) f_image_url FROM t_group_picture GROUP BY f_ai
分组查询取每组最新的数据
分组查询取每组最新的数据 表结构 CREATE TABLE cy_biz_message ( id INT AUTO_INCREMENT COMMENT '主键' PRIMARY KEY, send_id INT NOT NULL COMMENT '发送者...
Mysql 查询当前时间24小时内的数据
记录一下mysql查询24小时内的sql语句 where time &amp;gt;=(NOW() - interval 24 hour)  
Mysql数据处理,按照半小时汇总数据,
需求:将数据库中每分钟一条的数据表,从9:30取到22:00 ,以半小时为单位汇总,并输出excel。 数据表字段:id(序号)、incount(计数)、cdate(数据时间) 表名:m_temp 难点:时间处理 解决办法:使用DATE_FORMAT、CONCAT、Date、Hour、Minute、Floor函数将时间处理成半小时,在将这段时间的数据查询时 输出cdate统一变为  09:...
php将从数据库取出的数据分为6个一组的二维数组
$presell = M('presell')-&amp;gt;field('id,sname,num,weight,shop_price,endtime,supply,givetime')-&amp;gt;where($info)-&amp;gt;order('id desc')-&amp;gt;select();         //将数据分为6个一组的二维数组         rsort($presell);       ...
MySQL数据库三(查询和更新数据)
在数据库当中添加数据之后我们的目的是在使用数据时可以从数据库中取出数据,所以现在介绍数据库的查询一、数据库的查询数据库查询操作较为简单,当前数据表当中存在以下数据:(1) 现在我们使用查询语句检索数据,例如:SELECT username FROM test;返回的数据为:(2) 也可以检索多个列,要检所的列名中间用逗号分隔:SELECT id,username FROM test;(3)检索
mysql 查询24小时内 数据,null用0代替
由于数据库中group by语句分类筛选为空的时间段酒无法显示 所以如果数据不全时,我们使用DATE_FORMAT(create_time, '%H')这个函数也无法获取完整的24小时数据,使用下面这种方法将没有数据的时间短用0代替 完整语句如下: SELECT dayHour, IF(count IS NULL, 0, count) FROM (SELECT coun
mysql获取一段时间内,每个时间段时间最小与最大的数据(如:一天内每小时时间最小及最大是数据)
SELECT Min(id),Min(date) FROM a GROUP by (UNIX_TIMESTAMP(date) DIV 120)该语句是指将时间分为每2分钟为一个区间,并查询每个区间的最小id及date
对数据进行分组并取每组的最新数据
需求:取出每种checkunit中,sampledate时间为最新的一条的数据(日期并列相同会取其一) 表:test sql: SELECT temp.* FROM ( SELECT *, Row_Number () OVER ( partition BY checkunit ORDER BY sampledate DESC ) AS rank ...
数据库查询新数据的语句
SQL Server数据库查询最后五条数据 select top 5* from test order by time desc; MySQL数据库查询最后五条数据 select * from test order by id desc limit 5;
oracle查询最近一小时的数据
SELECT * from t_traffic_accident where ACCIDENT_TIME &amp;gt; (sysdate - to_dsinterval('0 1:00:00')) and ACCIDENT_TIME &amp;lt; sysdate
SQL语句查询最近几天,几个小时的数据的写法
几个小时内的数据 DATE_SUB(NOW(), INTERVAL 5(字段) HOUR)   今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名)  7天 S
mysql单表分组查询每组 中最新时间的记录
SELECT * from (SELECT * from student where 1=1 and user_id='111111' and c_user_id !='111111' ORDER BY create_time desc LIMIT 1000) as stu GROUP BY stu.tent_id ORDER BY stu.create_time desc
Oracle数据库按每6小时和每12小时分组统计
--按六小时分组 select trunc(to_number(to_char(created_time, 'hh24')) / 6),count(*)   from t_test  where created_time &amp;gt; trunc(sysdate - 40)  group by trunc(to_number(to_char(created_time, 'hh24')) / 6) ...
mysql 取每个分组中时间最近的记录
SELECT * FROM baoma_auction AS a WHERE NOT EXISTS ( SELECT 1 FROM baoma_auction WHERE goods_id = a.goods_id AND a.modify_
mysql 先排序分组 取组里面最新一条数据
最近又遇到这个问题了,不知道是不是mysql 的bug.  一般写sql  先排序在分组取最新的一条数据 不外乎  SELECT p.* FROM (SELECT * FROM sys_message ORDER BY id DESC  )p GROUP BY  p.messageType ORDER BY id desc  但是这样 还是得不到 分组里面最新的一条数据。   不废话 要...
SQL将一天分段分为8点到18点统计没半个小时一分组分成22组
1、原始数据如下: 2、利用分组求和计算出一天内小时与分合计 select  ( case when length( extract(hour  from  cast (oper_date as timestamp)) )&amp;lt;2 then '0'|| extract(hour  from  cast (oper_date as timestamp)) else to_char( ext...
收集的一些Redis面试题,欢迎挑战
一、 mySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据相关知识: redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。redis 提供 6种数据淘汰策略: volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰volatile-ttl:从已设置过期时间的数据集(s
Mysql取每小时的一条记录
SELECT * FROM ( SELECT s.sensor_data,s.get_date,s.sensor_name, DATE(get_date) AS d, SUBSTRING(get_date,12,2) as h FROM t_env_sensor s where s.sensor_type=5 and s.mod_i
Mysql 查询一天中,每个小时数据的数量
SELECT HOUR(e.time) as Hour,count(*) as Count FROM error_log e WHERE e.date = '2017-09-02' GROUP BY HOUR(e.time) ORDER BY Hour(e.time); 下面是查询结果截图 在另一篇文章里,我总结了查询每半小时统计一次的方法。Mysql...
Mysql每天以两个小时为一个时段统计一天内各个时段的数据增量的解决办法
最近在研究报表,要做一个实时的统计一天各个时段的数据增量,以2小时为一组统计,发现这个sql语句不简单,和大家分享一下我的写法。 做出来的效果如下:   sql语句如下: select count(distinct ro.retailUserId) AS retailUser, DATE_FORMAT(DATE_ADD(CONCAT(DATE_FORMAT(ro.createdTime...
mysql group by获取第一组数据
mysql group by获取第一组数据的sql SELECT h_m_r_r.*, o.`short_name` FROM house_meter_reading_record h_m_r_r, `options` o WHERE o.id = h_m_r_r.type AND h_m_r_r.id IN ( SELECT SUBSTRING_INDEX( GROUP_C
mysql数据库查询某个时间段内数据的方法
select * from market_orders where createdate>='2010-03-01 00:00:00' and createdate 上面的语句返回的是这个时间段内的所有行 select count(*) from market_orders where createdate>='2010-03-01 00:00:00' and createdate 这条
mysql查询最新几天的数据
select createTime,DATEDIFF(now(),createtime) from user_info where DATEDIFF(now(),createtime)
mysql分别对分一组的数据进行更新
UPDATE `trans_detail-2013-12_` a, ( SELECT MIN(EFFECTIVE_TIME) minTime,TRANS_CODE transCode FROM  `trans_detail-2013-12_`  WHERE TRANS_CODE in( 'QTCK_1312_1_QTRK_1312_1', 'QTCK_1312_2_QTRK_1312_2
SQL 获取每一组第一条记录
根据分组取出每个分组的第一条记录数据 1.先将数据分组并对每一组进行排序; over(partition by 分组字段 order by 排序字段) 2.根据需要获取序号1的数据 SELECT * FROM ( SELECT RECEIVE_ID,LINE_CD,REC_TIME ,ROW_NUMBER() over(partition by LINE_CD order
oracle 查询半小时之前的数据
and t.create_tm   and t.create_tm > sysdate-60/1440  sysdate-10/1440表示距离现在30分钟之前,1440这个数字表示一天有1440分钟。sysdate-10:表示10天前;
mysql数据库查询指定列最大值,并且按组查询
项目的购买记录表,查询最新的购买记录,但由于商品还有子商品所以还要实现组查询,实际上是查询各个商品的最新购买时间: select id,usr_id,item_id, max(deadline) as deadline from buy_record where user_id = 1 group by item_id
查询每种类型前N条记录
经常遇到一个表,有多个类别,每个类别,下面有多个小类别,每个小类别下面又有多条记录的情况,要求取出每个大类别下面的三条记录。 数据库;     CREATE TABLE `NewTable` ( `id` int(11) NOT NULL AUTO_INCREMENT , `acar_id` int(11) NOT NULL , `ascore_id`...
查询每一组的前N条记录
    参考链接 比如要查询每个人创建的前10条公司:   select a.* from organization a where (select count(1) from organization b where a.created_by = b.created_by and b.id &amp;lt; a.id) &amp;lt; 10 通过表关联,从主表开始,...
mysql中如何查询最近24小时、top n查询
mysql中如何查询最近24小时、 where visittime >=  NOW() - interval 1 hour; 昨天、 where visittime between CURDATE()-interval 1 day and CURDATE(); 最近7天、 where visittime between CURDATE()-interval 7 day ;
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 数据库查询课程 数据库查询课程