还是关于mysql。。。

早起的虫儿被鸟吃 发布于 2017/01/10 10:47
阅读 311
收藏 0

数据实时插入数据库,我想取最新一条数据的时间(SELECT data_time FROM price_data ORDER BY data_time DESC LIMIT 0,1;)  。。那么我想取这个时间前一个小时的所有数据该该怎么写,网上很多说这样(SELECT data_time FROM price_data WHERE data_time BETWEEN '2017-01-10 10:30:00' AND DATE_ADD('2017-01-10 10:30:00',INTERVAL 1 HOUR); 可是我运行发现并没有取到一个小时内的数据。所有想过来问问。。

(PS:关于需求实际是这样,就是表中保留最新数据一小时内的数据(有时间字段data_time),其他数据可以放到其他表中【因为不想改程序的sql了,所有取消了建立临时表的打算】。。我本来目的想先找到一小时内的数据来的,可是也没有找到。。有没有好的思路的)


加载中
0
妹子楼顶有鸽子
妹子楼顶有鸽子
SELECT h.*
FROM
  (SELECT a.*,
     (SELECT t.data_time
      FROM price_data t
      ORDER BY t.data_time DESC LIMIT 1) baseDate
   FROM price_data a
   ORDER BY a.data_time DESC) h
WHERE h.data_time BETWEEN baseDate AND date_add(baseDate, INTERVAL 1 HOUR)
0
魔力猫
魔力猫
data_time >=sysdate-1/24,这是Oracle的写法,MySQL你自己改一下吧。
0
梦想岛
梦想岛
计算时间应该交给后端,传递值到mysql查。
0
大賢者
大賢者
时间比较我喜欢交给mysql干,何乐而不为,什么7天连续登录那些
0
ivon_zhang
ivon_zhang

 SELECT data_time FROM price_data WHERE data_time BETWEEN  DATE_SUB('2017-01-10 10:30:00',INTERVAL 1 HOUR) AND '2017-01-10 10:30:00'

ivon_zhang
ivon_zhang
你需要检查下你的数据看看
早起的虫儿被鸟吃
早起的虫儿被鸟吃
为什么只有9:30到10:00的数据呢
0
风翔飞
风翔飞

DATE_ADD('2017-01-10 10:30:00',INTERVAL 1 HOUR) =2017-01-10 11:30:00

把1改成-1

返回顶部
顶部