0

私は離散的な時点で一連の位置を持っています。最初のタイムスタンプが小さく、最初のタイムスタンプが高い位置を返す関数を使用したいと思います。

例えば

timestamp | pos
5         | (-3, -3)
10        | (0, 0)
15        | (3, 3)
20        | (6, 6)

このテーブルにタイムスタンプ 17 を照会すると、行が取得されます

15        | (3, 3)
20        | (6, 6)

私は何かを期待しています

SELECT * FROM positions WHERE timestamp = first_smaller(17)
SELECT * FROM positions WHERE timestamp = first_greater(17)
4

2 に答える 2

3
select * from positions where timestamp <= 17 order by timestamp desc limit 1;

select * from positions where timestamp >= 17 order by timestamp asc limit 1;
于 2013-07-03T14:20:09.177 に答える