Ir para conteúdo

POWERED BY:

Arquivado

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

Brito

Datas no SQL 2000

Recommended Posts

Ola pessoal;Como faço para comparar o campo de uma tabela com a data atual no SQL?Fiz assim:WHERE MeuCampoData > GETDATE()Onde "MeuCampoData" é o campo no banco de dados onde armazeno determinada data mas... não funcionou.Alguem sabe a forma certa de fazer esta comparação?Thanks

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais um detalhe... e se ao inves de comparar um campo com a data atual fosse um campo com uma variavel? Como formato a variavel? No SQL Server tem algo como aquele DateSerial() do Access?Thanks

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara...

 

Voce pode usar o seguinte: where convert(datetime,MeuCampoData,103) > convert(datetime,GETDATE(),103), isso fará com que seus dois campos sejam convertidos para o formato data e possam ser assim comparados. Se um de seus campos já estiver no formato data, não tem problema algum, falow?

 

[]'s

Bruno

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Senhores, funcionou legal.So me perdi um pouco na explicação do americo sobre a variavel.Na verdade, tenho uma constante e não uma variavel.Eu teria que checar se a data armazenada no BD em um campo datetime é maior que "01 de Janeiro de 2001".Como eu deveria fazer? Seria isto?WHERE CONVERT(datetime,MeuCampoData,103) > CONVERT(datetime,"2001-01-01",103)Mais uma vez;Brigadão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A variável seria no ASP.Eu montei e ta rodando legal, exceto um probleminha que estou tentando descobrir.Parece que quando estou usando o operador ">" entre duas datas, ele esta trabalhando como se fosse ">=". To quebrando a cabeca aqui para ver onde chego.Valeu mesmo pela força.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ja não sei mais o que fazer.

Deem uma olhada neste codigo, é o que estou usando:

SELECT dbo.Banners.IdBanner, NomeCampanha,        Largura, Altura, TotalViews, dbo.Zonas.DescricaoFROM dbo.Banners INNER JOIN dbo.Zonas ON dbo.Banners.IdZona = dbo.Zonas.IdZonaWHERE (TotalViews > LimiteViews OR TotalClicks > LimiteClicks)  OR(CONVERT(datetime, GETDATE(), 101) > CONVERT(datetime, LimiteData, 101)  ANDCONVERT(datetime, LimiteData, 101) > CONVERT(datetime, '01/01/2001', 101))OR CANCELADO = 1ORDER BY dbo.Banners.NomeCampanha

Se obervarem a linha que contem:

CONVERT(datetime, GETDATE(), 101) > CONVERT(datetime, LimiteData, 101)

 

Ela deveria retornar somente os registros em que a data atual fosse maior que a data que esta no campo LimiteData do BD.

 

Mas acontece o seguinte:

Se ponho uma data "maior" que hoje no BD, então o registro não sai no resultado consulta.

Se ponho a data "igual" a data de hoje, então...

O registro sai na consulta mas não deveria, afinal o operador é "Maior" e não "Maior ou igual: .

 

Por favor... se alguem puder me ajudar porque ja perdi o dia de hoje inteiro neste negócio (se o patrão descobre to ferrado ;) )

 

Valeu a força

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.