Postgresql 在postgres中,如何根据开始和结束时间按小时划分持续时间?

Postgresql 在postgres中,如何根据开始和结束时间按小时划分持续时间?,postgresql,Postgresql,如何根据开始时间和结束时间将持续时间按一小时间隔分割 比如,如果开始时间=6:30:00,结束时间=8:30:00,那么从6.30到7.30,它将给出h1,7.30到8.30,它将给出h2 n all。。尝试使用密集的_等级,但不起作用。。有人能帮忙吗 我需要一个小时的h1,h2班次。。。像这样..使用时间键0630到0730,它将给出h1,依此类推。。 尝试使用此查询 select td.time_key tdkey, shft.shid shid, ('h' || DENSE_RANK(

如何根据开始时间和结束时间将持续时间按一小时间隔分割

比如,如果开始时间=6:30:00,结束时间=8:30:00,那么从6.30到7.30,它将给出h1,7.30到8.30,它将给出h2 n all。。尝试使用密集的_等级,但不起作用。。有人能帮忙吗

我需要一个小时的h1,h2班次。。。像这样..使用时间键0630到0730,它将给出h1,依此类推。。 尝试使用此查询

select td.time_key tdkey, shft.shid shid,
 ('h' || DENSE_RANK() OVER ( ORDER BY substr(time_key, 1, 2))) hour_of_shift
from smartweld_sample_dev4.time_dim td, 
     smartweld_sample_dev4.shift shft 
where td.timeofday::time between shft.START and shft.END;

但是它给出了6.30到7.00的h1,然后它将排名提高了一。怎么能做到这一点?

与您的问题无关,但是:Postgres 9.1是您应该尽快计划升级。另外:示例数据最好显示为。有关如何创建美观的表格的一些提示,请参见。如果您添加所需输出的示例(格式文本,而不是屏幕截图)也会有所帮助好的..谢谢您的建议为什么不加入轮班数据子选择,如
选择'sh'| | shift|u hour_no,'07:30'::time+shift_hour_no*(间隔'1 hour'):time+(shift_hour_no+1)*(间隔'1 hour'))从生成系列(0,7/*小时轮班*/)到轮班时间(不
?@JuliusTuskenis这对我很有帮助。完成了。非常感谢。