【问题标题】:PostgreSQL: Date Difference with fractionsPostgreSQL:带分数的日期差异
【发布时间】:2018-05-25 02:20:36
【问题描述】:
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.91 天而不是 1 天和 22 小时来获得更精确和更容易适应机器学习模型的日差是否可行?

【问题讨论】:

标签: postgresql date


【解决方案1】:

date_part() 就像它的名字所说的那样:它从日期、间隔或时间戳返回几个元素的一部分。在您的情况下,它是间隔的一部分(因为timestamp - timestamp 返回interval)。

如果你想得到一个分数的结果,你需要extract间隔的秒数,然后除以86400(这是一天中的秒数)

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

【讨论】:

    猜你喜欢
    • 2021-10-26
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-21
    • 2018-04-07
    • 2014-09-15
    • 1970-01-01
    相关资源
    最近更新 更多