2014-01-16 2 views
1

У меня есть таблица встреч, содержащая следующие поля. Я пишу такой запрос.Mysql Query для получения записи, дата которой находится сразу после текущей даты

 
SELECT * 
FROM appointments app 
WHERE app.patient_id = 123 
ORDER BY appointment_start_dt DESC; 
+--+----------+--------------------+ 
|id|patient_id|appointment_start_dt| 
+--+----------+--------------------+ 
|1 |123  |2014-01-18 19:10:00 | 
+--+----------+--------------------+ 
|2 |123  |2014-01-18 12:08:00 | 
+--+----------+--------------------+ 
|3 |123  |2014-01-17 15:00:00 | 
+--+----------+--------------------+ 
|4 |123  |2014-01-15 11:01:00 | 
+--+----------+--------------------+ 
|5 |123  |2014-01-11 12:30:00 | 
+--+----------+--------------------+ 
|6 |123  |2014-01-10 04:00:01 | 
+--+----------+--------------------+ 

Таблица имеет несколько назначений до текущей даты (Допустим, текущая дата время является 2014-01-15 15:00:00) и некоторые назначения после текущей даты и времени в отношении конкретного пациента. Мне нужно забрать одну запись у одного пациента, дата назначения которого сразу же наступает после текущего времени, т. Е. Если есть две встречи, которые придут после 2014-01-17 15:00:00, мне нужно выбрать встречу который является самым ранним, который является 2014-01-18 12:08:00.

Я очень признателен, если любое тело помочь мне сделать этот запрос, Спасибо

ответ

5

Дайте этому попытку

SELECT * 
FROM appointments app 
where app.patient_id = 123 AND appointment_start_dt > Now() 
order by appointment_start_dt ASC LIMIT 1; 
+1

Да, это решить проблему. Я пытался использовать DESC, которые всегда дают мне рекорд с самой высокой датой. любой, как благодарит Кей Нельсон. – Mubasher

Смежные вопросы