Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

477
Views
Use to_char en la consulta Flask SqlAlchemy

En mi modelo Flask tengo esta columna:

 datetime = db.Column(db.DateTime, nullable=False, default=datetime.now)

Cuando completo las filas de una base de datos PostgreSql, obtengo esto:

 2020-07-03 18:12:49.362271 2020-07-04 09:21:34.644202

Ahora, quiero formatear esos resultados usando la función to_char de Postgresql. La consulta debería ser esta:

 select to_char(datetime, 'YYYY-MM-DD HH24:MI:SS') as datetime from order_detail;

Y el resultado es este:

 --------------------- 2020-07-03 18:12:49 2020-07-04 09:21:34 (2 rows)

¿Cómo puedo decirle a Flask-SqlAlchemy que ejecute esa función cuando consulta la tabla order_detail ?

Importante: no quiero hacer el formato en mi aplicación Flask, quiero dejar que Postgresql formatee los resultados .

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Utilice column_property() y func() . Suponiendo que su modelo se llame Foo :

 from sqlalchemy import func from sqlalchemy.orm import column_property class Foo(db.Model): id = db.Column(db.Integer, primary_key=True) datetime = db.Column(db.DateTime, nullable=False, default=datetime.now) formatted_datetime = column_property(func.to_char(datetime, 'YYYY-MM-DD HH24:MI:SS')) # print(Foo.query.all()[0].formatted_datetime) # ->'2020-07-04 06:59:09'

Si es importante que el nombre del atributo del modelo sea datetime , deberá asignar a la columna subyacente un nombre de atributo diferente y hacer referencia a la columna con su name kwarg.

 class Foo2(db.Model): __tablename__ = 'foo' id = db.Column(db.Integer, primary_key=True) orig_datetime = db.Column(db.DateTime, name='datetime', nullable=False, default=datetime.now) datetime = column_property(func.to_char(orig_datetime, 'YYYY-MM-DD HH24:MI:SS')) # print(Foo2.query.all()[0].datetime) # ->'2020-07-04 06:59:09'
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!