Array
(
)

Consulta entre datas

Alex Maia
   - 28 nov 2008

Boa tarde,

Como faço pra consulta entre datas no sql server cinsiderando apenas o mês e o ano. Por exemplo:

SELECT * FROM TABELA WHERE DATA BETWEEN MM/YYYY AND MM/YYYY

Desde já agradeço.

Jair Bg
   - 01 dez 2008

Bom Dia, voce pode fazer isso por partes utilizando na clausula ´WHERE´ o comando ´DATEPART´ pegando o ano e o mês ´YEAR e MONTH´, pode resolver o seu problema...

Martins
   - 10 dez 2008


Citação:
Bom Dia, voce pode fazer isso por partes utilizando na clausula ´WHERE´ o comando ´DATEPART´ pegando o ano e o mês ´YEAR e MONTH´, pode resolver o seu problema...


Tente utilizar a dica do jair BG, ela vai te ajudar.

Exemplo meramente ilustrativo.

#Código

SELECT * FROM TABELA 
WHERE 
MONTH(DATA) BETWEEN DATEPART(MONTH, DATAX) 
AND 
DATEPART(MONTH, DATAX) 
AND 
YEAR(DATA) BETWEEN DATEPART(YEAR, DATAX) 
AND 
DATEPART(YEAR, DATAX)


Boa sorte e bons códigos!

Emerson
   - 11 jan 2009


Citação:
Tente utilizar a dica do jair BG, ela vai te ajudar.

Exemplo meramente ilustrativo.

#Código

SELECT * FROM TABELA 
WHERE 
MONTH(DATA) BETWEEN DATEPART(MONTH, DATAX) 
AND 
DATEPART(MONTH, DATAX) 
AND 
YEAR(DATA) BETWEEN DATEPART(YEAR, DATAX) 
AND 
DATEPART(YEAR, DATAX)


Assim não vai funcionar, Martins...
imagine que eu queira entre Jun/2001 e Nov/2008. com a query acima será trazido tudo esteja entre os meses 06 e 09, de 2001 a 2008, porém eu pedi a partir de JUNHO/2001. Novembro de 2001 não deve ser listado.

algo assim deve funcionar:
#Código
SELECT
  *
FROM
  TABELA
WHERE
  convert(varchar(7),DATA,102)
    BETWEEN
      convert(varchar(7),DATAINI,102) AND
      convert(varchar(7),DATAFIM,102)