• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

428
Vistas
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 3 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

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 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda