我有一个文本文件中的数据我正在阅读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
这是一个通勤铁路线,Caltrain的时间表。我正在尝试查询车站,以获得火车到达和离开时间。我几个月前在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的东西?
答案 0 :(得分:1)
您应该尝试使用时间列的间隔类型。这些将记录小时,分钟和秒的数量,而不是试图记录一天中的时间。
请参阅PostgreSQL documentation on dates and times。
interval
的时间分量大于24小时,与time
数据类型不同{/ 1}}。