【问题标题】:Difference between two dates with subquery带有子查询的两个日期之间的差异
【发布时间】:2018-09-14 19:18:25
【问题描述】:

我正在尝试计算 Postgres 上两个日期之间的差异。首先我得到日期:

SELECT * FROM
(
    SELECT 
            to_char(to_timestamp(t.time/1000000), 'DD/MM/YYYY HH24:MI:SS') AS initial_date
    FROM
            book.ticket AS t

    WHERE status = 'planning'
) AS initial_date,

(
    SELECT 
            to_char(to_timestamp(t.time/1000000), 'DD/MM/YYYY HH24:MI:SS') AS final_date
    FROM
            book.ticket AS t

    WHERE status = 'closed'
) AS final_date

然后我想做类似的事情来计算之前恢复的日期之间的差异:

SELECT DATE_PART('day', final_date::timestamp - initial_date::timestamp)

但我不知道如何将最后一部分(计算的部分)与其他查询放在一起。有人能帮我吗?

【问题讨论】:

  • 如果你省略to_char,那应该可以正常工作。
  • 第一个和第二个查询返回多少行?每人一个?是的,删除 to_char
  • 大家好,我的建议是计算我的书桌上的任务从计划到结束需要多长时间(以天为单位)。所以首先我得到任务状态为“计划”的日期,然后我得到更改为“关闭”的日期并尝试计算差异。如果我单独运行第一个和第二个查询,会给我带来多个结果
  • 我有日期和时间,像这样:'2018-07-06 15:30:40+00'。与 postgree 网站相关,函数 date_part 应该像这个模型一样使用:date_part('day', timestamp '2001-02-16 20:38:40')。所以我尝试了这个并且工作: SELECT DATE_PART('day', '2018-07-06 15:30:40+00'::timestamp - '2018-07-10 15:30:40+00'::timestamp)如果您对我上面的示例感到痛苦,我会将日期放在引号中,因为如果我不这样做,我会收到错误消息。我对代码进行的 toChar() 转换是由于 date_part 函数上的这条规则。这就是为什么我不能省略 to_char
  • 请不要将 SOLVED 放在问题的标题中。批准一个答案就足够了。我已从标题中删除了该短语。

标签: sql postgresql date subquery


【解决方案1】:

好的,伙计们!经过所有这些讨论,我解决了我的问题。我将在下面发布代码。谢谢大家的帮助,大家的意见很重要!

SELECT t1.id, t1.initial_date, t2.id, t2.final_date, t2.final_date - t1.initial_date as dif
FROM (

        (
        SELECT 
            t.id,
            to_timestamp(t.time/1000000) AS initial_date
        FROM
            book.ticket AS t
        WHERE status = 'planning' 
        )  t1

JOIN   (
        SELECT 
            t.id,
            to_timestamp(t.time/1000000) AS final_date
        FROM
            book.ticket AS t
        WHERE status = 'closed'  
       )  t2
ON t1.id  = t2.id 
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-05
    • 2014-06-12
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    • 2015-09-14
    相关资源
    最近更新 更多