Atributo Date SQL[RESOLVIDO]

Boa noite galera!!
Então a duvida da vez é a seguinte …
Preciso fazer um select no bando de dados (SQL SERVER)comparando a data que meu sistema grava com a data atual e somente listar os que a data inserida forem >= a data de hoje!

gravo na tabela do banco de dados no seguinte formato

insert into loc_armario (data_devo)values(18/09/2012)

e preciso comparar o comando date do sql com este atributo !
Abraços boa noite

nao sei se vai te ajudar mais eu utilizei essa classe para data
espero ajudar

[code]import java.text.SimpleDateFormat;
import java.util.Date;
public class Data {
String mes, dia, ano, dia_semana, hora;
SimpleDateFormat horaformatada = new SimpleDateFormat(“hh:mm:ss”);

   public void le_hora() {
       Date horaAtual = new Date();
       hora = horaformatada.format(horaAtual);
   }
   public void le_data() {
    Date data = new Date();
    //mes = "" + data.getMonth();//esse metodo nao ta sendo mais utilizado mais vale a intesao 
    dia = "" + data.getDate();
    ano = "" + (1900 + data.getYear());
    //dia_semana = "" + data.getDay();
    switch(data.getDay()){
        case 0 : dia_semana = "Domigo Feira"; break;
        case 1 : dia_semana = "Segunda Feira"; break;
        case 2 : dia_semana = "Terça Feira"; break;
        case 3 : dia_semana = "Quarta Feira"; break;
        case 4 : dia_semana = "Quinta Feira"; break;
        case 5 : dia_semana = "Sexta Feira"; break;
        case 6 : dia_semana = "Sábado Feira"; break;    
    }
    switch(data.getMonth()){
        case 0 : mes = "1"; break;
        case 1 : mes = "2"; break;
        case 2 : mes = "3"; break;
        case 3 : mes = "4"; break;
        case 4 : mes = "5"; break;
        case 5 : mes = "6"; break;
        case 6 : mes = "7"; break;
        case 7 : mes = "8"; break;
        case 8 : mes = "9"; break;
        case 9 : mes = "10"; break;
        case 10 : mes = "11"; break;
        case 11 : mes = "12"; break;
    }
}            

}[/code]
e utilizei esse codigo para mandar o valor para o bd la dentro do codigo botao novo quando eu salvo, salva com os valores que estao dentro do TextField
agora indico os dados
agora crio um objeto

//se presiso inporta a clase data
//aki fica depois de initComponents();
Data mostra_data;
mostra_data = new Data();

aki so pra novo

edtData.setText(mostra_data.dia + " / " + mostra_data.mes + " / " + mostra_data.ano);       

e salvar

edtData.getText()//vai pegar os resultado do campo

tudo isso so pega se o codigo estiver bem estruturado
se voce querer eu posto o codigo de salvar.

Não poderia ser só esse select?
select “campos” where data_devo >= getdate()

Isso, claro, se a coluna data_devo for do tipo datetime.

[quote=jerson]Não poderia ser só esse select?
select “campos” where data_devo >= getdate()[/quote]

Sim sim eu tentei isso mas não sei inserir no banco n o formato date iai na hora de comparar não da certo . obrigado

[quote=ricardoal]nao sei se vai te ajudar mais eu utilizei essa classe para data
espero ajudar

[code]import java.text.SimpleDateFormat;
import java.util.Date;
public class Data {
String mes, dia, ano, dia_semana, hora;
SimpleDateFormat horaformatada = new SimpleDateFormat(“hh:mm:ss”);

   public void le_hora() {
       Date horaAtual = new Date();
       hora = horaformatada.format(horaAtual);
   }
   public void le_data() {
    Date data = new Date();
    //mes = "" + data.getMonth();//esse metodo nao ta sendo mais utilizado mais vale a intesao 
    dia = "" + data.getDate();
    ano = "" + (1900 + data.getYear());
    //dia_semana = "" + data.getDay();
    switch(data.getDay()){
        case 0 : dia_semana = "Domigo Feira"; break;
        case 1 : dia_semana = "Segunda Feira"; break;
        case 2 : dia_semana = "Terça Feira"; break;
        case 3 : dia_semana = "Quarta Feira"; break;
        case 4 : dia_semana = "Quinta Feira"; break;
        case 5 : dia_semana = "Sexta Feira"; break;
        case 6 : dia_semana = "Sábado Feira"; break;    
    }
    switch(data.getMonth()){
        case 0 : mes = "1"; break;
        case 1 : mes = "2"; break;
        case 2 : mes = "3"; break;
        case 3 : mes = "4"; break;
        case 4 : mes = "5"; break;
        case 5 : mes = "6"; break;
        case 6 : mes = "7"; break;
        case 7 : mes = "8"; break;
        case 8 : mes = "9"; break;
        case 9 : mes = "10"; break;
        case 10 : mes = "11"; break;
        case 11 : mes = "12"; break;
    }
}            

}[/code]
e utilizei esse codigo para mandar o valor para o bd la dentro do codigo botao novo quando eu salvo, salva com os valores que estao dentro do TextField
agora indico os dados
agora crio um objeto

//se presiso inporta a clase data
//aki fica depois de initComponents();
Data mostra_data;
mostra_data = new Data();

aki so pra novo

edtData.setText(mostra_data.dia + " / " + mostra_data.mes + " / " + mostra_data.ano);       

e salvar

edtData.getText()//vai pegar os resultado do campo

tudo isso so pega se o codigo estiver bem estruturado
se voce querer eu posto o codigo de salvar.[/quote]

Então agradeço a ateçao mas é o seguinte eu tenho um campo de data ja mas ele grava no bd em varchar no formato “XX/XX/XXXX” onde xx são dias mes e ano.
tenho que transformar esse campo pra gravar no formato ou date no banco de dados ou smalldatetime pra conseguir comparar etendeu? quando eu to teentando comprar esses tipos de atributo não ta dando certo , o vaor retornado do selecet que o jerson citou não é valido mas quero utilizar esse comando mesmo select data_devo from loc_armarios where data_devo>= getdate()só quero conseguir comparar o atributo que eu to gravando com o getdate . abraços

[quote=yurisisbell][quote=jerson]Não poderia ser só esse select?
select “campos” where data_devo >= getdate()[/quote]

Sim sim eu tentei isso mas não sei inserir no banco n o formato date iai na hora de comparar não da certo . obrigado[/quote]

apenas tenho que conseguir comparar o campo que estou gravando com o getDate do bd abraços

eu tbm tava com problema pra salvar fui lar no mysql e mudei o banco de dados pra varchar

A inserção ou select no SQL Server, se a instalação for a padrão, se dá no formato “AAAAMMDD” (entre aspas duplas), se o seu campo for DATETIME verifique isso (faça SELECT GETDATE() e veja o que retorna).
Agora, se na sua tabela esta usando VARCHAR, caraca, nem sei … vai ter que separar dia/mes/ano, converter e comparar com hoje … vai ser uma buxa …
Voce faz esse insert mesmo " insert into loc_armario (data_devo)values(18/09/2012) " ??? Esta funcionando?

sim, eu botei assim para quando eu clicar no btnNovo o jTextField o ganha os valores de//importei a class Data //e crie um objeto mostra_data Data mostra_data; public jFrame(){ initComponents(); mostra_data = new Data(); } //no botao novo fiz assim //no casso eu madei a data la para o jTextField edtData edtData.setText(mostra_data.dia + " / " + mostra_data.mes + " / " + mostra_data.ano);

Corrigindo:
O formato DATA é com aspas simples:
Ex. SELECT * FROM TABELA WHERE CAMPO_DATA = ‘20121010’

  INSERT INTO TABELA (CAMPO_DATA) VALUES ('20121010')

Verifique o COLATE de seu DB, mas de qualquer forma aquele insert que voce esta usando acho que não funciona.
Qual versão do seu SQL Server?

[quote=jerson]A inserção ou select no SQL Server, se a instalação for a padrão, se dá no formato “AAAAMMDD” (entre aspas duplas), se o seu campo for DATETIME verifique isso (faça SELECT GETDATE() e veja o que retorna).
Agora, se na sua tabela esta usando VARCHAR, caraca, nem sei … vai ter que separar dia/mes/ano, converter e comparar com hoje … vai ser uma buxa …
Voce faz esse insert mesmo " insert into loc_armario (data_devo)values(18/09/2012) " ??? Esta funcionando?[/quote]

cara sim eu consigo mas eu só consigo inserir desse modo porque no banco de dados essa varavel está como varchar!

sim sim eu fiz isso mass na hora de comparar com o getDate()

.

[quote=msergiost]A função GETDATE() retorna o tipo de dados datetime corrente.

Para fazer comparação correta converta a data ‘18/09/2012’, char ou varchar, para datetime com CAST ou CONVERT.

[/quote]

Resolvi
Vou passsar a inserir a data nesse formato

insert into aqui(data2)values ('19990101')

e na hora de comparar

select * from aqui where data2<getdate() assim funciono certim