Jim*_*mmy 10 sql postgresql datediff
我试图找出表格中某些字段之间的时间.但是因为我正在使用Postgresql :((我不能使用DATEDIFF函数.我在网上找不到任何明确的指南/教程,它们显示了如何在Postgres中做类似的事情所以我需要帮助做同样的事情但是在Postgres
我假设如果我使用支持DATEDIFF函数的RDBMS,这个查询会有效,所以基本上我的问题是如何更改这个以便它使用Postgresql提供的功能?
SELECT Question.ID,
Question.Status, COUNT (qUpdate.ID) AS NumberofUpdates,
DATEDIFF (Question.LoggedTime,MIN(qUpdate.UpdateTime)) AS TimeBeforeFirstUpdate,
DATEDIFF(Question.LoggedTime, MAX(qUpdate.UpdateTime)) AS TimeBeforeLastUpdate
FROM qUpdate
LEFT JOIN Question ON qUpdate.qID=Question.ID
WHERE Question.Status = 'closed' AND qUpdate.Update NOT NULL
GROUP BY Question.Status, Question.ID, Question.LoggedTime;
Run Code Online (Sandbox Code Playgroud)
如果您需要更多信息或任何澄清,我会尽快回应.
a_h*_*ame 12
您不需要"datediff"功能.
只需减去两个日期:
Question.LoggedTime - MIN(qUpdate.UpdateTime)
Run Code Online (Sandbox Code Playgroud)
如果您不知道,但所有在线记录的内容:http:
//www.postgresql.org/docs/current/static/functions-datetime.html
您可以使用该age(<date1>, <date2>)函数(而不是DATEDIFF)。
这应该有效 -
SELECT Question.ID,
Question.Status, COUNT (qUpdate.ID) AS NumberofUpdates,
age(Question.LoggedTime,MIN(qUpdate.UpdateTime)) AS TimeBeforeFirstUpdate,
age(Question.LoggedTime, MAX(qUpdate.UpdateTime)) AS TimeBeforeLastUpdate
FROM qUpdate
LEFT JOIN Question ON qUpdate.qID=Question.ID
WHERE Question.Status = 'closed' AND qUpdate.Update NOT NULL
GROUP BY Question.Status, Question.ID, Question.LoggedTime;
Run Code Online (Sandbox Code Playgroud)
注意,如果 psql 给你这个错误 - ERROR: date/time field value out of range,那么你需要选择一个合适的datestyle.
| 归档时间: |
|
| 查看次数: |
24813 次 |
| 最近记录: |