Muitas pessoas têm dúvida na hora de trabalhar com datas no sqlite, o que é aceitável já que sqlite não tem um tipo data que possa ser especificado para um campo, como date ou datetime, por exemplo, o que nos resta então é usar os tipos nativos do sqlite para armazenar e manipular as datas, ou seja, podemos usar:
TEXT para armazenar uma string com o valor da data, exemplo “2013-03-03 21:21:00”, dessa forma podemos ordenar os valores de acordo com o campo data sem problemas.
Repare que no trecho do código abaixo o campo datahora e ultima são criados com o tipo TEXT.
CREATE TABLE IF NOT EXISTS conta
(codigo INTEGER PRIMARY KEY AUTOINCREMENT,
datahora TEXT,
ultima TEXT,
descricao TEXT,
status_excluido INTEGER DEFAULT 0)'
O próximo trecho de código mostra como gravar o DATETIME atual do sistema usando uma das funções de manipulação de datas do Sqlite:
INSERT INTO conta(datahora, descricao) values(datetime('now'),'Exemplo de texto');
Existem ainda duas outras formas recomendas de trabalhar com datas no Sqlite, que são:
– Usar um campo do tipo REAL e armazenar as datas no formato Juliano.
– Por último, usar um campo do tipo INTEGER para armazenar um valor UNIX TIME, por exemplo.
Os dois últimos tem a vantagem de permitirem comparações entre datas, subtração ou adição, de forma mais simples e direta.
Abaixo alguns links de referência que podem ser bastante úteis na manipulação de datas com Sqlite:
Lista de funções para manipulação de datas
http://www.sqlite.org/lang_datefunc.html
Documentação sobre Datas e outros tipos no Sqlite
http://www.sqlite.org/datatype3.html