Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

CleberMartins

[Resolvido] Select de periodos - datas

Recommended Posts

Boa Tarde a todos....

 

Criei um banco de datas da seguinte maneira

 

dia (int - 2)

mes (int - 2)

ano (int - 4)

 

e fiz um programa que executa um select com a seguinte condição

 

select

dia,

mes,

ano

from

bancoData

where

dia >= ('$dia_i') and

mes >= ('$mes_i') and

ano >= ('$ano_i') and

dia <= ('$dia_f') and

mes <= ('$mes_f') and

ano <= ('$ano_f')

 

onde:

(_i=inicial e _f=final)

O select funciona corretamente quando preciso de apenas um mês (Ex: 01/01/2010 a 31/01/2010)

O probleba é quando preciso de meses ou anos, se eu peço o periodo de 10/01/2010 a 10/02/2010 ele só me tras o dia 10 de janeiro e 10 de fevereiro.

 

Como posso resolver isso?

 

Muito Obrigado a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe um formato para data, use que este tipo de busca ficam mais fáceis.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Cleber, boa tarde.

 

Como nosso amigo Motta disse, utilizamos para datas o atributo DATE. Voce irá armazenar a data completa e suas consultas serão fáceis de serem manipuladas.

 

Dê uma olhada no manual oficial: clique aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ficaria mais ou menos assim:

 

select

B_Data, DATE_FORMAT(B_Data, '%d/%m/%Y') DATA_FORMATADA

from

bancoData

WHERE B_Data BETWEEN ($vlDataInicio) AND ($vlDataFim);

Se quiser condicionar para mês e ano, poderia fazer:

 

select

B_Data, DATE_FORMAT(B_Data, '%d/%m/%Y') DATA_FORMATADA

from

bancoData

WHERE DATE_FORMAT(B_Data, '%Y') = 2010 AND DATE_FORMAT(B_Data, '%m') BETWEEN 5 AND 8;

Ou ainda:

 

select

B_Data, DATE_FORMAT(B_Data, '%d/%m/%Y') DATA_FORMATADA

from

bancoData

WHERE EXTRACT(YEAR FROM B_Data) = 2010 AND EXTRACT(MONTH FROM B_Data) BETWEEN 5 AND 8;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.