在查询中隐藏一些日期时间

时间:2017-02-13 11:26:06

标签: postgresql datetime

我有一个查询返回给我这个结果:

-----DATE--------------VALUE1---VALUE2
|2016-09-20 11:15:00| 5653856 | 37580
|2016-09-20 11:16:00|  NULL      NULL
|2016-09-20 11:18:00|  NULL      NULL
|2016-09-20 11:20:00|  NULL      NULL
|2016-09-20 11:30:00| 5653860  37580
|2016-09-20 11:32:00|  NULL      NULL
|2016-09-20 11:34:00|  NULL      NULL

在此表中,只有xx:00,xx:15,xx:30,xx:45中的记录具有值,其他记录为null。

如何在查询中创建条件,只获取00,15,30和45次记录而不显示其他记录?

这是查询:

SELECT t.date, 
       MAX(CASE WHEN t.id= '924' THEN t.value END) - MAX(CASE WHEN t.id= '925' THEN t.valueEND) as IMA_71,
       MAX(CASE WHEN t.id= '930' THEN t.value END) as IMA_73 
FROM records t 
where office=10 
      and date between '2016-09-20 11:15:00' and '2016-10-21 11:15:00' 
GROUP BY t.office,t.date order by t.date asc; 

1 个答案:

答案 0 :(得分:1)

您可以使用extract来确定分钟,并对其进行过滤:

where  extract('minute' from t.date) in (0, 15, 30, 45)