如何使用 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 的时间戳?

智能POS如何获取日志&数据库文件

JPQL 中的 timestampdiff 等效项(不使用标准)

SQL中TIMESTAMPDIFF()计算两个时间日期的时间差DATE_SUB()计算某个日期前的具体日期时间DATE_ADD()计算某个日期后的具体日期时间对日期进行加减操作解析

如何在 C# 中获取用户的国家/地区名称?

如何从 MySQL 中的 DOB 字段中获取年龄?