2016-06-10 79 views
0

我有一个表,看起来像这样:获取记录在PostgreSQL的

id | flight_number | departure_time | arrival_time 
---+---------------+----------------+------------- 
1 | UAL123  | 07:00:00  | 08:30:00 
---+---------------+----------------+------------- 
2 | AAL456  | 07:30:00  | 08:40:00 
---+---------------+----------------+------------- 
3 | SWA789  | 07:45:00  | 09:10:00 

我试图找出一个SQL查询,可以让基于发车时间即将起飞的航班给出的当前时间。例如,在07:20,我想返回AAL456, SWA789,因为那些航班还没有离开。在07:40,我想只返回SWA789。什么是这样做的好方法?

+0

http://stackoverflow.com/questions/27834235/how-to-calculate-next-occurring-date-based-on-day-of-week-from-a-start-date – fuzz

回答

1

那么,您可以使用LOCALTIME来获取当前时间。所以,如果departure_time存储为time,则:

select t.* 
from t 
where t.departure_time > localtime; 

这不承担任何时区信息的时间价值的一部分。另外,在最后一班航班离开一天后(这与您的问题的措辞一致),它将不返回航班。

+0

该列创建为'时间(0)没有时区“,但是当我运行这个查询时,它仍然返回所有行。 –

+0

@AndrewDeForest。 。 。也许你应该检查你正在使用的系统上的'localtime'。 –

+1

良好的调用...没有在我的开发机器上工作,但在生产服务器上工作。 –