Форум сайта python.su
Здравствуйте!
Мне нужно вытащить из БД данные которые были записаны 5 или более дней назад.
Как правильно узнать дату, которая была 5 дней назад ?
Пробовал так, но не работает:
n = time.time() - (60*60*24*5)
date = n.strftime("%Y-%m-%d %H:%M:%S")
print date
Офлайн
from datetime import datetime, timedelta
'Сдвинуть время'
print d + timedelta(days=1, hours=1)
#> 2010-08-15 03:58:15.057538
Офлайн
Спасибо то что нужно !
И ещё небольшой вопрос:
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']
Отредактировано (Ноя. 27, 2010 12:08:51)
Офлайн
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']
Отредактировано (Ноя. 27, 2010 12:29:41)
Офлайн
На мой взгляд достаточно полное описание форматов времени приведено на сайте:
http://seehuhn.de/pages/pdate
Отредактировано (Ноя. 27, 2010 12:52:03)
Офлайн
Эм, вот так работает:
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']
Отредактировано (Ноя. 27, 2010 13:05:02)
Офлайн
andreiruесли работает, то правильно. но алгоритм плохой - то же самое что читать из текстового файла, а не из бд-sql.
Так правильно будет ?
Отредактировано (Ноя. 27, 2010 13:41:04)
Офлайн