2013-02-25 140 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小時的時間分量。