2013-02-25 81 views
0

我从一个文本文件,我读入一个Postgres 9.1表中的数据,数据是这样的:后在午夜时间的PostgreSQL

451,22:30:00,22:30:00,San Jose,1 
451,22:35:00,22:35:00,Santa Clara,2 
451,22:40:00,22:40:00,Lawrence,3 
451,22:44:00,22:44:00,Sunnyvale,4 
451,22:49:00,22:49:00,Mountain View,5 
451,22:53:00,22:53:00,San Antonio,6 
451,22:57:00,22:57:00,California Ave,7 
451,23:01:00,23:01:00,Palo Alto,8 
451,23:04:00,23:04:00,Menlo Park,9 
451,23:07:00,23:07:00,Atherton,10 
451,23:11:00,23:11:00,Redwood City,11 
451,23:15:00,23:15:00,San Carlos,12 
451,23:18:00,23:18:00,Belmont,13 
451,23:21:00,23:21:00,Hillsdale,14 
451,23:24:00,23:24:00,Hayward Park,15 
451,23:27:00,23:27:00,San Mateo,16 
451,23:30:00,23:30:00,Burlingame,17 
451,23:33:00,23:33:00,Broadway,18 
451,23:38:00,23:38:00,Millbrae,19 
451,23:42:00,23:42:00,San Bruno,20 
451,23:47:00,23:47:00,So. San Francisco,21 
451,23:53:00,23:53:00,Bayshore,22 
451,23:58:00,23:58:00,22nd Street,23 
451,24:06:00,24:06:00,San Francisco,24 

距离的通勤铁路线的时间表,加州火车。我试图查询车站,以获得火车的到达和离开时间。我在几个月前在MySql上做了这个,而我得到了

select * from trains as a, trains as b where a.trip_id=b.trip_id and a.st 
op_id='San Antonio' and b.stop_id='San Carlos' and a.arrival_time < b.arrival_ti 
me; 

到目前为止这么好,很直接。然而,当我试图将数据复制到postgres数据库时,我发现有些时间在午夜之后,24或25:00:00发生。但是,如果我将它们更改为00:00:00和01:00:00的东西,会不会与查询混乱?午夜后的时间似乎在开始时间之前? MySql显然没有问题,我不知道该怎么做。我想我应该使用最后一列,或者将时间转换为不考虑PM/AM的事情?

回答

1

您应该尝试对时间列使用间隔类型。那些将记录小时数,分钟数和秒数,而不是试图记录一天的时间。

查看PostgreSQL documentation on dates and times

time数据类型00:00 <= x <= 23:59不同,interval可能具有大于24小时的时间分量。