【发布时间】: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