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

它来自通勤铁路线 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 的时间?

4

1 回答 1

1

您应该尝试对时间列使用间隔类型。这些将跟踪小时数、分钟数和秒数,而不是尝试记录一天中的某个时间。

请参阅有关日期和时间的 PostgreSQL 文档

interval仅限time00:00 <= x <= 23:59.

于 2013-02-25T03:22:02.190 回答