Problema com Data no DB[RESOLVIDO]

9 respostas
leandro-maanaim

pessoal criei uma tabela com um campo DataCadastro do tipo Date mais quando eu dou uma consulta tipo… select * from DataCadastro where DataCadastro >= 2000 nao funciona pq?

9 Respostas

Diego_Marinho

Como tá o SQUEMA desta sua tabela…
Posta aqui para analizarmos.

[]´s.

renanedpedroso

Qual banco de dados você está utilizando?

Se estiver utilizando MySQL você poderá fazer assim:

SELECT * FROM from DataCadastro where DataCadastro >= ‘2000-01-01’;

Espero ter ajudado!

Abraço!

fernandofavari

Normalmente vc tem que passar todo o parâmetro da data… mas aí conta o tipo de BD usado, se for MySql ou Oracle!!
Se caso for MySql faz assim***
select *
from “nome da tabela”
where datacadastro >= 30-01-2010

Agora, se for Oracle, não tem muita certeza, mas acho que é assim
select *
from “nome da tabela”
where datacadastro >= 30-jan-2010

No caso do BD se Oracle, faça o teste usando o hífen ou a barra" \ ", pois não me recordo!!!

Abraço

renanedpedroso

No Oracle XE eu consegui fazer assim:

SELECT * FROM from DataCadastro where DataCadastro >= ‘01-01-2000’;

Espero ter ajudado!

Abraço!

Diego_Marinho

Normalmente vc tem que passar todo o parâmetro da data… mas aí conta o tipo de BD usado, se for MySql ou Oracle!!
Se caso for MySql faz assim***
select *
from “nome da tabela”
where datacadastro >= 30-01-2010

Agora, se for Oracle, não tem muita certeza, mas acho que é assim
select *
from “nome da tabela”
where datacadastro >= 30-jan-2010

No caso do BD se Oracle, faça o teste usando o hífen ou a barra" \ ", pois não me recordo!!!

Abraço

Só corrigindo, se me permite:

Você pode em fazer a consulta do tipo:

SELECT * FROM POST WHERE POST_DT_CADASTRO > 2000

isso vai depender do tipo usado no atributo ou entidade, que no meu caso foi um “DateTime” - PL do MySQL.

Em outros bancos, se for um tipo similar a esse que falei, vc pode sim, usar apenas ANO ou DIA ou MÊS para usar sem sequer passar como parâmetro na cláusula where do select todo o argumento, que no seu exemplo foi:

select *
from “nome da tabela”
where datacadastro >= 30-01-2010.

Agora como vc informou, colocando na cláusula toda a descrição da “máscara” do tipo do dado do atributo, é um lance mais seguro e o mais recomendável.

Mas não restringe a usar somente o ano como o colega informou acima, pois isso é um recursos que qualquer SGBD de qualquer banco consegue realizar.

OK.

[]´s.

fernandofavari

Normalmente vc tem que passar todo o parâmetro da data… mas aí conta o tipo de BD usado, se for MySql ou Oracle!!
Se caso for MySql faz assim***
select *
from “nome da tabela”
where datacadastro >= 30-01-2010

Agora, se for Oracle, não tem muita certeza, mas acho que é assim
select *
from “nome da tabela”
where datacadastro >= 30-jan-2010

No caso do BD se Oracle, faça o teste usando o hífen ou a barra" \ ", pois não me recordo!!!

Abraço

Só corrigindo, se me permite:

Você pode em fazer a consulta do tipo:

SELECT * FROM POST WHERE POST_DT_CADASTRO > 2000

isso vai depender do tipo usado no atributo ou entidade, que no meu caso foi um “DateTime” - PL do MySQL.

Em outros bancos, se for um tipo similar a esse que falei, vc pode sim, usar apenas ANO ou DIA ou MÊS para usar sem sequer passar como parâmetro na cláusula where do select todo o argumento, que no seu exemplo foi:

select *
from “nome da tabela”
where datacadastro >= 30-01-2010.

Agora como vc informou, colocando na cláusula toda a descrição da “máscara” do tipo do dado do atributo, é um lance mais seguro e o mais recomendável.

Mas não restringe a usar somente o ano como o colega informou acima, pois isso é um recursos que qualquer SGBD de qualquer banco consegue realizar.

OK.

[]´s.

Vlw pela dica!!!
abraço

leandro-maanaim

Pessoal blz deu certo. Obrigado a todos

renanedpedroso

Altere o nome do post, adicionando [RESOLVIDO].

renanedpedroso

:oops: Desculpe, não tinha visto que você já tinha alterado.

Abraço!

Criado 19 de março de 2010
Ultima resposta 19 de mar. de 2010
Respostas 9
Participantes 4