Jua*_*rez 5 python postgresql sqlalchemy
我想知道在 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 中获取两个日期之间的差异的正确方法?
谢谢
小智 5
您可以使用 datediff 来计算日期差异:
SELECT DATEDIFF(Here_you_put_units, '2019-02-11 17:59:05.953894', '2019-02-11 17:59:01.953894');
Run Code Online (Sandbox Code Playgroud)
您可以使用的单位:
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
hour hh
minute mi, n
second ss, s
millisecond ms
microsecond mcs
nanosecond ns
Run Code Online (Sandbox Code Playgroud)
保存为 var:
SELECT DATEDIFF(Here_you_put_units, '2019-02-11 17:59:05.953894', '2019-02-11 17:59:01.953894') AS needed_date;
Run Code Online (Sandbox Code Playgroud)
SQL_炼金术:
from sqlalchemy import func, text
from datetime import datetime
date1 = datetime.fromisoformat('2019-02-11 17:59:05.953894')
date2 = datetime.fromisoformat('2019-02-11 17:59:01.953894')
func.datediff(text('Here_you_put_units'), date1, date2)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10829 次 |
| 最近记录: |