MA
Manipulação de campos TDATE utilizando o SQLITE
Bom dia!
Estou desenvolvendo um sistema simples de cadastro de contratos, para o meu local de trabalho.
Dentre algumas coisas que vou ter que implementar é um script que vá verificar se o contrato X esta perto da data de vencimento ou não, e se sim, enviar email para a pessoa responsável.
No SQLITE não existem campos tipo DATE, diferente do MySQL ou PostGre.
Gostaria de saber se o framework disponibiliza uma forma fácil de manipular essas datas. Se eu for no banco SQLITE e fizer um select, order by, etc, usando os campos de data, ele não ordena corretamente.
Existe algum método específico para manipular uma data tipo TEXT? Pois o sistema, atualmente, esta salvando a data como dd-mm-yyyy.
Já fiz algo semelhante, transformava a data em integer e sempre fazia as verificações pelos números mesmo, mas isso antes de começar a utilizar o framework. Se tiver uma forma mais fácil, seria ótimo.
Estou desenvolvendo um sistema simples de cadastro de contratos, para o meu local de trabalho.
Dentre algumas coisas que vou ter que implementar é um script que vá verificar se o contrato X esta perto da data de vencimento ou não, e se sim, enviar email para a pessoa responsável.
No SQLITE não existem campos tipo DATE, diferente do MySQL ou PostGre.
Gostaria de saber se o framework disponibiliza uma forma fácil de manipular essas datas. Se eu for no banco SQLITE e fizer um select, order by, etc, usando os campos de data, ele não ordena corretamente.
Existe algum método específico para manipular uma data tipo TEXT? Pois o sistema, atualmente, esta salvando a data como dd-mm-yyyy.
Já fiz algo semelhante, transformava a data em integer e sempre fazia as verificações pelos números mesmo, mas isso antes de começar a utilizar o framework. Se tiver uma forma mais fácil, seria ótimo.
o SQLITE tem sim campos do tipo DATE e TIME tambem, assim como TIMESTAMP (DATETIME)
Oi William!
Então... CAMPOS campos mesmo não.
sqlite.org/datatype3.html
Ele tem as manipulações né... de acordo com o que tem aqui:
sqlite.org/lang_datefunc.html
que são funções...
Mas tu entedeu minha pergunta? Eu também não sei se eu consegui me expressar bem.
Se eu salvar em um campo tipo TEXT (que é o que estou fazendo no momento), tem alguma função do Framework, que faça essa pesquisa direta no banco sem a necessidade de realizar funções tipo DATE no sqlite?
Por que, se pá, numa dessa é mais fácil salvar em integer, na hora de gravar no banco uma info oriunda de um campo TDATE transformar essa info em integer também... e boa...
só vai dar mais trabalho
e mais linhas nas functions "set_data_cont"
Tenta criar uma coluna tipo DATE. Comigo funciona.
Marcos, se o problema principal é a ordenação, mesmo que o banco não tenha campos do tipo date, basta salvá-las no formato americano(yyyy-mm-dd).
Emanoel, testei aqui desta forma.... e aparentemente funcionou mesmo!
haha.... olha....
Pelo que tinha entendido da documentação do sqlite não daria pra fazer esse tipo de coluna.
Mas tentei fazer umas seleções e aparentemente foi.
Bá! comi bola de graça! hahaha
Muito obrigado!
Nataniel, obrigado pela resposta também. Caso de algum crep com o formato que fiz agora, tento a sua abordagem.
Obrigado a todos!
Não.... engano meu...
Fiz umas seleções aqui e ele entende que
14-02-2017 é maior que 02-05-2017
Nataniel, vou tentar a sua abordagem. Obrigado!
Nataniel! Obrigado cara. Esqueci de avisar aqui, mas a sua abordagem foi a que resolveu a parada aqui.
Obrigado!
:D