Python ve SQLite kullanarak tarih depolama/alma ile ilgili tasarım sorunları yaşıyorum.SQLite tarih depolama ve dönüştürme
Bir SQLite tarih sütununun tarihlerini metin olarak ISO biçiminde (ör. '2010-05-25'
) depoladığını anlıyorum. o masaya yazma-geri verilerine geldiğinde ben (web sayfasında örn.) bir İngiliz tarihini görüntülemek Yani ben Ancak
datetime.datetime.strptime(mydate,'%Y-%m-%d').strftime('%d/%m/%Y')
kullanarak tarih dönüştürmek , SQLite çok bağışlayıcı ve olduğu oldukça tarihi alanında '25/06/2003'
saklamak için mutlu, ancak bu değil idealdir çünkü
- aynı sütunda tarih biçimleri karışımı ile sol olabilir
,
- olduğunu
SQLite'nin tarih işlevleri yalnızca ISO formatıyla çalışır.
Bu yüzden işlemekle önce geri ISO biçimine tarih dizesi dönüştürmek gerekir, ama sonra bütün tarih alanlarında yazılı ve gerekirse ISO dönüştürür edilecek ilgili verileri denetleyen bir genel işlevi gerekir. Bu bana biraz sıkıcı geliyor ama belki de kaçınılmaz.
Daha basit çözümler var mı? Tarih alanını 10 karakter alanına değiştirmek ve tablo boyunca 'dd/mm/yyyy'
depolamak daha kolay olur mu? Bu şekilde tablodan okurken veya yazarken dönüşümü gereklidir ve herhangi bir tarih-aritmetiği gerçekleştirmem gerekirse datetime() işlevlerini kullanabilirim.
Diğer geliştiriciler bu sorunu nasıl aştı? Herhangi bir yardım takdir edilecektir. Kayıt için Python 3.1 ile SQLite3 kullanıyorum. Eğer sqlite3.connect
yılında detect_types=sqlite3.PARSE_DECLTYPES
ayarlarsanız
Teşekkürler unutbu - tarih nesneleri gibi görünüyor. Saygılarımızla. –