Лучший способ разделить данные из SQLAlchemy на основе даты?Python

Программы на Python
Ответить
Anonymous
 Лучший способ разделить данные из SQLAlchemy на основе даты?

Сообщение Anonymous »

Представьте себе эту таблицу:

Код: Выделить всё

class Entries(db.Model):
__tablename__ = "entries"
id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(Text)
created_time = Column(Datetime)
А в базе данных у меня следующие данные:

Код: Выделить всё

id   data     created_time
---------------------------
1    entry1   2024-10-29 01:55:20
2    entry2   2024-10-29 12:44:50
3    entry3   2024-10-29 08:47:10
4    entry4   2024-12-01 14:30:19
5    entry5   2024-12-01 10:58:36
6    entry6   2024-12-05 22:15:48
Я хотел бы отобразить данные, сгруппированные по дате и отсортированные по убыванию времени.
Например, это сортируется по последней дате, и внутри каждой даты отображаются данные записи, отсортированные по самой последней дате:

Код: Выделить всё

Dec 05 2024
entry6

Dec 01 2024
entry4
entry5

Oct 29 2024
entry2
entry3
entry1
Есть ли способ легко выполнить запрос в SQLAlchemy, чтобы получить данные таким образом?
Если нет, и мне приходится самому разбивать это на части, у меня есть такой запрос:

Код: Выделить всё

data = db.session.query(Entries).order_by(text("created_time DESC")).all()
Как я могу разбить данные, чтобы можно было легко сделать что-то вроде:

Код: Выделить всё

for date in data:
print(date.created_time)
for entry in date.entries:
print(entry.name)
print("\n")
Одна из больших проблем с разделением вручную заключается в том, что все даты изначально технически неизвестны. Придется ли мне сначала выполнить запрос, чтобы получить все уникальные даты, а затем пропускать каждую дату через второй запрос, чтобы получить записи? Это требует большого количества запросов на дату и кажется неэффективным. Любая помощь приветствуется!

Подробнее здесь: https://stackoverflow.com/questions/793 ... ed-on-date
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»