4

私のテーブルには次の日付があります。今日(今日の日付がある場合)または今日の日付がない場合は、最も近い過去の日付から最も近い日付を見つけるにはどうすればよいですか?

2012-10-01          aa123
2012-10-02          aa43
2012-10-03          aa478
2012-10-04          aa40    
2012-10-05          aa54
2012-10-06          de34
2012-10-07          a5434
2012-10-08          r4t
2012-10-09          x34
2012-10-10          q23
2012-10-11          b53

したがって、今日がそうである場合'2012-10-07'、レコードはになりますa5434。ただし、2012-10-07欠落している場合は、今日から最も近い過去の日であるため、レコードはde34に属します。2012-10-06

どこから始めたらいいのかわからないので、まだ何も試していません。これに対するSQLソリューションが必要です。

4

2 に答える 2

11

簡単です。最後の日付の1つ<=現在の日付を取得するだけです。

$now = date("Y-m-d");
$sql = "SELECT * FROM date_table where date_field <= '$now' ORDER BY date_field DESC LIMIT 1 OFFSET 1";
于 2012-10-26T00:18:31.897 に答える
2

ORDER BYクエリにステートメントを追加します。以下では、行を日付順に並べ、最新のものを上に、最も古いものを下に並べます。

SELECT `id`, `date` FROM `table` ORDER BY `date` DESC LIMIT 1;
于 2012-10-26T00:15:20.993 に答える