如何使用 TIMESTAMPDIFF 获取 PostgreSQL 中 2 个日期之间的差异? [复制]
Posted
技术标签:
【中文标题】如何使用 TIMESTAMPDIFF 获取 PostgreSQL 中 2 个日期之间的差异? [复制]【英文标题】:How to get difference between 2 dates in PostgreSQL with TIMESTAMPDIFF? [duplicate] 【发布时间】:2018-10-21 17:32:50 【问题描述】:我想把它当作:
SELECT * FROM "Employee" WHERE TIMESTAMPDIFF('YEAR', "BirthDate", "HireDate");
但我得到下一个错误:
ERROR: function timestampdiff(unknown, timestamp without time zone, timestamp without time zone) does not exist
LINE 1: SELECT * FROM "Employee" WHERE TIMESTAMPDIFF('YEAR', "BirthD...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
我找到了另一种方法来获取两个日期之间的差异,但在我的说明中它说我必须通过 TIMESTAMPDIFF
获取它。
有人可以帮我在哪里查找以及如何解决我的错误吗?
【问题讨论】:
"HireDate" - "BirthDate"
Postgres 中没有 timestampdiff
- 无论这些说明是什么,它们显然是针对不同的 DBMS 产品的。 postgresql.org/docs/current/static/functions-datetime.html
@a_horse_with_no_name 你的意思是换地方?我也试过了,同样的错误
【参考方案1】:
你可以使用减号运算符
EXTRACT(DAY FROM (HireDate)-(BirthDate)) AS DateDifference
例如select date '2001-10-01' - date '2001-09-28'
DEMO IN FIDDLE
PostGrey Docs
【讨论】:
有趣。这适用于-
,但不适用于age()
。
with age , date_part('year', age("BirthDate", "HireDate"))
所以我是怎么理解 PostgreSQL 中没有 TIMESTAMPDIFF 的,对吧?顺便说一句,谢谢你的回答!以上是关于如何使用 TIMESTAMPDIFF 获取 PostgreSQL 中 2 个日期之间的差异? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何将 AM PM 转换为 SQL 中 timestampdiff 的时间戳?
JPQL 中的 timestampdiff 等效项(不使用标准)
SQL中TIMESTAMPDIFF()计算两个时间日期的时间差DATE_SUB()计算某个日期前的具体日期时间DATE_ADD()计算某个日期后的具体日期时间对日期进行加减操作解析