SQLite, Python - способы хранения, обработки данных о датах и времени

В Как пользоваться SQLite нет никакого специального формата хранения для времени и дат. Выйти из этой ситуации можно несколькими способами:

  • хранить дату, как строку в формате Что такое сертификат ИСО (ISO), зачем он нужен, виды ISO, например "2009-08-23 19:25:05". В этом случае, придется писать свои обработчики. Сортируется при использовании ORDER BY в запросе.
  • хранить дату, как число в формате timestamp. В этом случае, операции сравнения, сложения, вычитания будут производиться, как над обычными числами. Сортируется при использовании ORDER BY в запросе.

Оригиналы примеров PLEAC-Python: Dates and Times:

Converting DMYHMS to Epoch Seconds

# Converting DMYHMS to Epoch Seconds
# To work with Epoch Seconds, you need to use the time module

# For the local timezone
t = datetime.datetime.now()
print "Epoch Seconds:", time.mktime(t.timetuple())
#=> Epoch Seconds: 1060199000.0

# For UTC
t = datetime.datetime.utcnow()
print "Epoch Seconds:", time.mktime(t.timetuple())
#=> Epoch Seconds: 1060195503.0

Converting Epoch Seconds to DMYHMS

now = datetime.datetime.fromtimestamp(EpochSeconds)
#or use datetime.datetime.utcfromtimestamp()
print now
#=> datetime.datetime(2003, 8, 6, 20, 43, 20)
print now.ctime()
#=> Wed Aug  6 20:43:20 2003

# or with the time module
oldtimetuple = time.localtime(EpochSeconds)
# oldtimetuple contains (year, month, day, hour, minute, second, weekday, yearday, daylightSavingAdjustment) 
print oldtimetuple 
#=> (2003, 8, 6, 20, 43, 20, 2, 218, 1)

Ссылки

PQ VPS сервера в 28+ странах.