MySQL查询日期之前的最新记录

时间:2017-04-24 21:12:50

标签: php mysql date

我有一个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之前的第一条记录。

有人可以帮忙吗?感谢。

3 个答案:

答案 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;顺序