是否有TIMESTAMPDIFF()PostgreSQL 的等价物?
我知道我可以减去两个时间戳来获得postgresql INTERVAL.我只想要INT中表示的两个时间戳之间的差异.
我可以在MySQL中这样做:
TIMESTAMPDIFF(HOUR, links.created, NOW())
Run Code Online (Sandbox Code Playgroud)
我只需要以小时表示的两个时间戳之间的差异表示为整数.
解决方案对我有用:
SELECT "links_link"."created",
"links_link"."title",
(EXTRACT(EPOCH FROM current_timestamp - "links_link"."created")/3600)::Integer AS "age"
FROM "links_link"
Run Code Online (Sandbox Code Playgroud) 我想知道在 SQLAlchemy 上工作的两个日期之间的差异。使用 Postgresql 我有以下工作:
SELECT
EXTRACT(EPOCH FROM ('2019-02-11 17:59:05.953894'::timestamp - '2019-02-11 17:59:01.953894'::timestamp))
Run Code Online (Sandbox Code Playgroud)
但是,在 SQLAlchemy 中尝试相同的操作时我遇到了问题:
session.query(func.extract('epoch',func.date(subquery.c.dt_final.cast(Date)))-
func.date(subquery.c.dt_start.cast(Date))).all()
Run Code Online (Sandbox Code Playgroud)
出现此错误:
ProgrammingError: (psycopg2.errors.UndefinedFunction) operator does not exist: double precision - date
LINE 1: ...h FROM date(CAST(anon_2.dt_final AS DATE))) - date(CAS...
^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
Run Code Online (Sandbox Code Playgroud)
如何在 SQLAlchemy 中获取两个日期之间的差异的正确方法?
谢谢