Найти - Пользователи
Полная версия: Операции с датой
Начало » Python для новичков » Операции с датой
1
andreiru
Здравствуйте!

Мне нужно вытащить из БД данные которые были записаны 5 или более дней назад.
Как правильно узнать дату, которая была 5 дней назад ?

Пробовал так, но не работает:

n = time.time() - (60*60*24*5)
date = n.strftime("%Y-%m-%d %H:%M:%S")
print date
o7412369815963
from datetime import datetime, timedelta

'Сдвинуть время'
print d + timedelta(days=1, hours=1)
#> 2010-08-15 03:58:15.057538
ещё см сюда
andreiru
Спасибо то что нужно !

И ещё небольшой вопрос:
cursor.execute('''SELECT * FROM files''')
for f in cursor.fetchall():
td = (datetime.today() - timedelta(days=f['interval'])).strftime("%Y-%m-%d %H:%M:%S")
if td >= f['date']:# как правильно перевести строку f['date'] в формат даты для сравнения ?
print f['name']
o7412369815963
andreiru
Спасибо то что нужно !

И ещё небольшой вопрос:
cursor.execute('''SELECT * FROM files''')
for f in cursor.fetchall():
td = (datetime.today() - timedelta(days=f['interval'])).strftime("%Y-%m-%d %H:%M:%S")
if td >= f['date']:# как правильно перевести строку f['date'] в формат даты для сравнения ?
print f['name']
фильтровать нужно в запросе, что-то типа этого:
td = (datetime.today() - timedelta(days=5))
cursor.execute('''SELECT * FROM files where ?>date''',td)
for f in cursor.fetchall():
print f['name']
поле “data” в базе должна быть с типом даты

а так как поле interval храниться в базе, то там же нужно хранить посчитанное поле date2 = date + interval, и в запросе сравнивать текущий день с date2
doza_and
На мой взгляд достаточно полное описание форматов времени приведено на сайте:
http://seehuhn.de/pages/pdate
andreiru
Эм, вот так работает:
cursor.execute('''SELECT * FROM files''')
for f in cursor.fetchall():
td = (datetime.today() - timedelta(days=f['interval']))
if td >= datetime.strptime(str(f['date']), "%Y-%m-%d %H:%M:%S")
print f['name']
Так правильно будет ?
o7412369815963
andreiru
Так правильно будет ?
если работает, то правильно. но алгоритм плохой - то же самое что читать из текстового файла, а не из бд-sql.
тот что я предложил будет в сотню раз быстрее работать (зависит от бд)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB