Mi problema:
Digamos que tengo una tabla con una columna DateTime . Ahora quiero consultar todas las filas que coincidan con una Fecha .
Mi idea:
Table.query.filter(Table.datetime.date() == date_to_be_matched)Obviamente, esto no funciona porque la columna en sí no tiene un método date(). También intenté simplemente convertir date_to_be_matched en una fecha y hora, pero necesitaría acceder a la hora de la fila/valor actual; de lo contrario, la evaluación == no funcionaría.
Entonces, mi pregunta es cómo llamo a una función / accedo a la fila y el valor actuales antes de que se evalúe la expresión del filtro.
Ya miré SQLAlchemy Docs y un montón de otras preguntas aquí, pero no pude encontrar una respuesta a mi problema.
En SQL, su consulta sería algo como esto:
SELECT * FROM mytable WHERE date(datetime_column) = '2022-02-03'; Para hacer esto en SQLAlchemy, use el mismo enfoque: aplique la función de date de RDBMS* a la columna que se está filtrando.
import sqlalchemy as sa Table.query(Table).filter(sa.func.date(Table.datetime) == date_to_be_matched) * El nombre de la función que extrae partes de fechas de fechas y horas puede variar según el RDBMS, y es posible que no todos los RDBMS proporcionen dicha función. Los atributos func de SQLAlchemy son nombres de funciones del RDBMS , por lo que si la función equivalente de su RDBMS es get_date , entonces haría sa.func.get_date(...) .