PostgreSQL:与分数的日期差异

时间:2017-12-11 14:23:02

标签: postgresql date

SELECT cu.user_id, cu.last_activity, cu.updated_time, 
       DATE_PART('day', cu.last_activity - cu.updated_time), to_char(end_date - start_date, 'DD.HH24') 
FROM stats.core_users cu 
WHERE cu.user_id = '117132014' or cu.user_id = '117132012';

获得如下结果:

117132014   2017-12-11 10:34:51.349905  2017-12-09 12:00:38.503518  1 01.22
117132012   2017-12-11 05:18:20.312283  2017-12-08 15:46:51.914085  2 02.13

在第一种情况下(而不是1天和22小时)获得与1.91天的分数的日差异是否可行,以更精确,更容易适应机器学习模型?

1 个答案:

答案 0 :(得分:0)

date_part()执行其名称所说的内容:它返回日期,间隔或时间戳中的多个元素的一部分。在您的情况下,它是间隔的一部分(因为timestamp - timestamp返回interval)。

如果您希望将结果作为分数,则需要extract间隔的秒数,然后将其除以86400(这是一天中的秒数)

extract(epoch from cu.last_activity - cu.updated_time) / 86400