2014-01-16 73 views
1

我有一个包含以下字段的约会表。我写这样的查询。Mysql查询以获取其日期时间紧接在当前日期时间之后的记录

 
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年1月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

相关问题