我有一个MySQL数据库,存储LogID,unix时间戳,温度,湿度和光照水平。我正在尝试获取一个查询,该查询在设定日期之前提取最后一条记录&时间。我的数据如下:
|69511|2017-04-24 19:53:23|19.8|52.7|1.76
|69512|2017-04-24 20:07:57|20|53.8|1.86
|69513|2017-04-24 20:12:00|20.1|54.9|1.07
|69514|2017-04-24 20:29:58|20.2|53.8|1.95
因此,如果所需日期为2017-04-24 20:10:00,则查询将返回记录:
|69512|2017-04-24 20:07:57|20|53.8|1.86
作为2017-04-24 20:10:00之前的第一条记录。
有人可以帮忙吗?感谢。
答案 0 :(得分:2)
使用WHERE子句将搜索限制在相关日期之前的记录中,然后按时间戳按降序排序(按ID排序也可能有效)并使用LIMIT 1获取第一条记录。
SELECT * FROM your_table
WHERE ts_column < '2017-04-24 20:10:00'
ORDER BY ts_column DESC LIMIT 1
我即兴创作了你的桌子的名字。时间戳列,但这应该给你一般的想法。
答案 1 :(得分:0)
使用时间戳过滤where子句中的记录。按降序排序,并使用限制获得前1个记录。
select * from table_name
where unix_timestamp < '2017-04-24 20:10:00'
order by unix_timestamp desc
limit 1
答案 2 :(得分:0)
也许试试:
SELECT * FROM {tablename} WHERE {timestamp column} < '2017-04-24 20:10:00' LIMIT 1
编辑:通过unix_timestamp desc&#39;
添加&#39;顺序