0

Postgres 9.1 テーブルに読み込んでいるテキスト ファイルからのデータがあり、データは次のようになります。

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 のいずれかの午前 0 時以降のさまざまな列でエラーが発生しました。しかし、それらを 00:00:00 と 01:00:00 に変更すると、クエリが混乱しませんか? 午前 0 時を過ぎると、開始時刻より前に表示されますか? MySql では、どうやらその時間に問題はなかったようで、どうすればよいかわかりません。最後の列を使用するか、午後/午前を考慮しない時間に変換する必要があると考えていますか?

4

1 に答える 1

1

時間列には interval タイプを使用してみてください。それらは、時刻を記録しようとする代わりに、時間、分、秒の数を追跡します。

日付と時刻については、PostgreSQL のドキュメントを参照してください。

に限定されているデータ型とは異なりinterval、 は 24 時間を超える時間コンポーネントを持つことができます。time00:00 <= x <= 23:59

于 2013-02-25T03:22:02.190 に答える