最も近い次の要素を検索する日時の値がある場合( comparation_dateという名前を付けましょ う)、次のように試すことができます。
SELECT * FROM table_name WHERE column_name IN (SELECT MIN(column_name) FROM table_name WHERE column_name > comparison_date ORDER BY column_name)
これにより、その日付より後のすべての日時値が返されます。単一の結果に制限する場合は、次を使用する必要があります。
SELECT * FROM table_name WHERE column_name IN (SELECT MIN(column_name) FROM table_name WHERE column_name > comparison_date ORDER BY column_name) LIMIT 1
または、現在の時刻から次に近い日時が必要な場合は、comparation_dateをMySQL関数であるNOW()に置き換えることが できます。次に、次のようなことを試すことができます。
SELECT * FROM table_name WHERE column_name IN (SELECT MIN(column_name) FROM table_name WHERE column_name > NOW() ORDER BY column_name)
次に低い日時(または前の日時、ただし、これを呼び出します)を見つけるには、次を使用する必要があります。
SELECT * FROM table_name WHERE column_name IN (SELECT MIN(column_name) FROM table_name WHERE column_name < comparison_date ORDER BY column_name DESC) LIMIT 1