У меня проблемы с дизайном хранения/поиска даты с использованием Python и SQLite.
Я понимаю, что столбец даты SQLite сохраняет даты как текст в формате ISO
(т.е. '2010-05-25'
). Поэтому, когда я показываю британскую дату (например, на веб-странице), я
конвертируйте дату, используя
datetime.datetime.strptime(mydate,'%Y-%m-%d').strftime('%d/%m/%Y')
Однако, когда дело доходит до записи данных в таблицу, SQLite очень
прощающ и вполне счастлив хранить '25/06/2003'
в поле даты, но это
не является идеальным, потому что
-
Я мог бы оставить смесь форматов даты в том же колонка,
-
Функции даты SQLite работают только с форматом ISO.
Поэтому мне нужно преобразовать строку даты обратно в формат ISO до но тогда мне понадобится общая функция, которая проверяет данные в записываться во все поля даты и при необходимости преобразуется в ISO. Это звучит немного утомительно для меня, но, возможно, это неизбежно.
Существуют ли более простые решения? Было бы проще изменить поле даты на
10-символьное поле и сохранить 'dd/mm/yyyy'
по всей таблице? Таким образом, нет
преобразование требуется при чтении или записи из таблицы, и я мог бы использовать
datetime(), если мне нужно выполнить любую арифметику даты.
Как другие разработчики могут решить эту проблему? Любая помощь будет оценена по достоинству. Для записи я использую SQLite3 с Python 3.1.