Часть 5.2: Классы данных вместо типов данных в SQLite3
Здравствуйте, уважаемые посетители сайта ZametkiNaPolyah.ru. Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3.…
Здравствуйте, уважаемые посетители сайта ZametkiNaPolyah.ru. Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. Мы уже сказали, что SQLite3 не имеет класса данных даты и времени, но вместо этого у SQLite3 есть функции, способные работать с датой и временем в том случае, если будет соблюден формат записи даты и времени. Обратим ваше внимание на то, что дата и время в SQLite3 может храниться с классом данных TEXT, REAL и INTEGER, для каждого из этих классов есть определенный формат записи даты и времени:
Класс данных | Формат времени |
TEXT | В текстовом виде формат времени должен быть представлен как строка формата ISO8601: «YYYY-MM-DD HH:MM:SS.SSS». |
REAL | В вещественном формате дата и время должны быть записаны, как число дней с момента отсчета юлианского календаря, то есть число дней с полудня 24 ноября, 4714 г. до нашей эры. Считайте дни и записывайте число. |
INTEGER | Чтобы указать дату и время в классе INTEGER, нужно использовать UNIX время, в данной случае дата и время будут записаны как число секунд 1970 г. 1 января полночи. |
Вы спокойно можете выбрать любой из форматов хранения даты и времени в базе данных SQLite3, а при помощи встроенных функций отдавать клиенту дату и время в том формате, в котором ему будет удобно.
Вот это меня раздражает в SQLite3 и одновременно нравится — она особенная. Разработчики настолько поленились, что не стали создавать тип данных даты и времени, хотя и так вполне себе работают базы данных