2015-06-09 95 views
0

我试图从我的表中获取一些数据 - 我只需要一天中的特定时间(在晚上22:00至次日早上06:00之间)一个固定的日期范围。Postgresql - 在特定的时间和日期范围内选择

这是我到目前为止有:

create new_table 
as select table.v1, table.localminute from table 
where date(table.localminute) between 
date('2013-11-01 00:00:00-05') and date('2014-12-01 00:00:00-05') 
and hour(table.localminute) between 22 and 6 

我不知道如何刚刚得到的数据为22小时:00:00-05 06:00:00-05每天。

我也想过使用通配符的日期,但要么它不工作,要么我的实现不正确。任何帮助将不胜感激!

我使用下面的链接来设置它的信息,因为它 - 不知道我需要做什么。

Select between date range and specific time range

回答

1
SELECT v1, localminute 
FROM "table" 
WHERE localminute BETWEEN '2013-11-01'::date AND '2014-12-01'::date 
AND (extract('hour' from localminute) >= 22 OR extract('hour' from localminute) < 6); 
+0

谢谢!这帮助我指出了正确的方向。不能真正提取“日期”,所以这是最终查询如何找到我:发现你只能提取时间戳的一部分,如日,小时,年,所以从查询中删除该部分:再次感谢您的帮助! –

+0

更新了答案,并表示感谢! – Patrick

+0

谢谢!我会投票答案,但我还没有足够的学分。 –