2016-10-07 14 views
0

20分ごとに天気に関するエントリを持つテーブルがあります。たとえば、これはタイムスタンプの列になります。タイムスタンプに基づいて最も近いエントリを見つけよう

2007-01-01 00:00:00 
2007-01-01 00:20:00 

などです。今、例えば2007-01-01 00:07:53のような別のタイムスタンプがある場合、天気表内でこの特定のタイムスタンプに最も近いエントリを見つける方法はありますか?

答えて

2

あなただけのこれまで単一の行を持つようにしたい場合は、あなたがこのような何かを行うことができます。

select * 
from the_table 
order by abs(extract(epoch from (the_timestamp_column - timestamp '2007-01-01 00:07:53'))) 
limit 1 

ABS(...)が1その後、大きくなったり小さくなっているタイムスタンプに対処することがありテーブルに格納されます。

供給タイムスタンプは常にテーブル内の最新のタイムスタンプその後、大きなある場合は、あなたがそれを簡略化することができます。

order by timestamp '2007-01-01 00:07:53' - the_timestamp_column 
+0

は、両方のソリューションをいただき、ありがとうございます。与えられたタイムスタンプは何らかの方法で常にランダムな時間になるので、あなたが挙げたように、あなたが投稿した最初の解決策がこの場合には最高です。 – Philip

+0

それは完璧に働いた、ありがとう! – Philip

関連する問題