0

こんにちは、最も近い日付を取得しようとしています ここに私のコードがあります

 SELECT schedule_date  FROM  schedule_table WHERE schedule_date > '2012-06-07' and   event_id='23' ORDER BY schedule_date ASC
       LIMIT 1

ここでは、実際のテーブルの schedule_date に 2012-06-07 00:00:00 が含まれています。

2012-06-07 06:53:57同じ日付が来たことを意味するこのような出力が得られますが、2012-06-08 04:53:57 ここでは like 演算子を使用してこの条件を確認する必要があると思います

このクエリで like 演算子を使用して、SQL で最も近い日付を取得するにはどうすればよいですか。よろしくお願いします。

4

2 に答える 2

2

クエリ: 日付で並べ替え、2012 年 6 月 7 日より大きい/等しい、制限 1

返されるレコードは目的の行である必要があります

注: LIKE 演算子は使用しないでください。指定された文字列内で一致するテキストを検索するためのものであるため、ここでは不要です。これは明らかに、クエリが達成しようとしているものではありません。

于 2012-05-15T15:06:04.177 に答える
1

日付値と日時フィールド タイプを一致させる典型的なケースがあります。必要なのは、同じ日付内の最も早い時間の値です。データには、同じ日付で時刻の値が異なる複数の行が含まれている可能性があります。以下を使用する必要があります。

SELECT schedule_date  FROM  schedule_table WHERE date(schedule_date) >= '2012-06-07' and   event_id='23' ORDER BY schedule_date ASC
       LIMIT 1

date() 関数については、MySQL のドキュメントで説明されています

于 2012-05-15T15:24:58.473 に答える