gpt4 book ai didi

sql - 选择时间戳最接近但不晚于现在的行

转载 作者:行者123 更新时间:2023-11-29 12:30:57 25 4
gpt4 key购买 nike

使用 Postgres 9.4,我试图从包含最接近但不早于当前系统时间的数据的表中选择一行。 datetime列是timestamp without time zone数据类型,数据与服务器处于同一时区。表结构为:

uid |      datetime       |    date    | day |   time   | predictionft | predictioncm | highlow 
-----+---------------------+------------+-----+----------+--------------+--------------+---------
1 | 2015-12-31 03:21:00 | 2015/12/31 | Thu | 03:21 AM | 5.3 | 162 | H
2 | 2015-12-31 09:24:00 | 2015/12/31 | Thu | 09:24 AM | 2.4 | 73 | L
3 | 2015-12-31 14:33:00 | 2015/12/31 | Thu | 02:33 PM | 4.4 | 134 | H
4 | 2015-12-31 21:04:00 | 2015/12/31 | Thu | 09:04 PM | 1.1 | 34 | L

查询速度不是问题,因为该表包含约 1500 行。

为清楚起见,如果当前服务器时间是 2015-12-31 14:00:00,返回的行应该是 3 而不是 2.

编辑:根据以下已接受的答案,解决方案是:

select * 
from myTable
where datetime =
(select min(datetime)
from myTable
where datetime > now());

编辑 2:澄清问题。

最佳答案

您也可以使用它。这样会更快。但如果您的行数很少,这不会有太大区别。

select * from table1
where datetime >= current_timestamp
order by datetime
limit 1

SQLFiddle Demo

关于sql - 选择时间戳最接近但不晚于现在的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34972254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com