2009-09-02 11 views
0

私はデータベースを一揃い持っています。私は、日付を与え、データベースの次の日付とデータベースの前の日付を取得したいと思います。日付を指定すると、データベース内の次の日付と前の日付を取得する方法

10/10/09、10/12/09、および10/15/09のデータベースがあるため、誰かが10/13/09の日付を入力すると、前回の10/12/09に戻る必要があります日付と10/15/09を次の日付として使用します。

どうすればいいですか?ありがとう!

答えて

4

これを使用して、日付だけでなくレコード全体を簡単に返すこともできます。

降順での日付による前の注文は、次の注文として昇順で行われることに注意してください。

+0

+1私をビートしてください。これは本当に良い方法です。なぜなら、望むならば、それらの日付に関連する他のフィールドを得ることができるからです。そうでなければ、パフォーマンスは同じです。 – harpo

+2

質問に_mysql_というタグが付いています。これには、 'TOP'ではなく' LIMIT'が必要です。 –

+0

あなたは一年しか与えられなかった場合、または年と月のみが与えられた場合、どうすれば同じことができますか? – Binarytales

7

あなたは簡単に2つのクエリを使用してこれを行うことができます:あなたは日付フィールドにインデックスを持っている場合

-- get previous date 
SELECT MAX(DateField) WHERE DateField < '2009-10-13'; 
-- get next date 
SELECT MIN(DateField) WHERE DateField > '2009-10-13'; 

が、その後、このクエリも非常に効率的になります。

関連する問題