PostgreSQL日期范围查询

时间:2016-08-18 17:54:50

标签: sql postgresql

我有一个PSQL数据库,其中包含表中“start_time”和“end_time”的字段。

这些从json文件作为字符串导入到数据库中的文本字段。该字符串具有以下格式:yyyy-mm-dd hh:mm:ss 我想做一个查询,给出数据库中表格中所有在给定日期范围内的id。

要做到这一点,我可以做两件事之一。我可以在给定日期范围的情况下查询开始和结束时间列表,并从该查询返回,对我希望通过WHERE start_time = ANY ('{list of dates go here}')

获取的实际数据执行单独查询

另一种选择是弄清楚如何将行的格式更改为可比较的行。如果字段不是文本字段,则为WHERE start_time > beginning of date range AND end_time > end of date range

日期范围将来自网站的日期时间选择器。

这可能是一个重复的帖子,但是经过几个小时的搜索后,其中任何一个的解决方案都没有出现。因此,正确方向的任何事情都是有帮助的。

由于

1 个答案:

答案 0 :(得分:1)

在这种情况下,PostgreSQL应该很容易。只需将字符串转换为时间戳和比较。

这应该是开箱即用的:

WHERE start_time::timestamp > '2016-01-01' AND end_time::timestamp < '2016-12-31'