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
nao sei se vai te ajudar mais eu utilizei essa classe para data
espero ajudar
importjava.text.SimpleDateFormat;importjava.util.Date;publicclassData{Stringmes,dia,ano,dia_semana,hora;SimpleDateFormathoraformatada=newSimpleDateFormat("hh:mm:ss");publicvoidle_hora(){DatehoraAtual=newDate();hora=horaformatada.format(horaAtual);}publicvoidle_data(){Datedata=newDate();//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()){case0:dia_semana="Domigo Feira";break;case1:dia_semana="Segunda Feira";break;case2:dia_semana="Terça Feira";break;case3:dia_semana="Quarta Feira";break;case4:dia_semana="Quinta Feira";break;case5:dia_semana="Sexta Feira";break;case6:dia_semana="Sábado Feira";break;}switch(data.getMonth()){case0:mes="1";break;case1:mes="2";break;case2:mes="3";break;case3:mes="4";break;case4:mes="5";break;case5:mes="6";break;case6:mes="7";break;case7:mes="8";break;case8:mes="9";break;case9:mes="10";break;case10:mes="11";break;case11:mes="12";break;}}}
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();Datamostra_data;mostra_data=newData();
tudo isso so pega se o codigo estiver bem estruturado
se voce querer eu posto o codigo de salvar.
J
jerson
Não poderia ser só esse select?
select “campos” where data_devo >= getdate()
J
jerson
Isso, claro, se a coluna data_devo for do tipo datetime.
Y
yurisisbell
jerson:
Não poderia ser só esse select?
select “campos” where data_devo >= getdate()
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
Y
yurisisbell
ricardoal:
nao sei se vai te ajudar mais eu utilizei essa classe para data
espero ajudar
importjava.text.SimpleDateFormat;importjava.util.Date;publicclassData{Stringmes,dia,ano,dia_semana,hora;SimpleDateFormathoraformatada=newSimpleDateFormat("hh:mm:ss");publicvoidle_hora(){DatehoraAtual=newDate();hora=horaformatada.format(horaAtual);}publicvoidle_data(){Datedata=newDate();//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()){case0:dia_semana="Domigo Feira";break;case1:dia_semana="Segunda Feira";break;case2:dia_semana="Terça Feira";break;case3:dia_semana="Quarta Feira";break;case4:dia_semana="Quinta Feira";break;case5:dia_semana="Sexta Feira";break;case6:dia_semana="Sábado Feira";break;}switch(data.getMonth()){case0:mes="1";break;case1:mes="2";break;case2:mes="3";break;case3:mes="4";break;case4:mes="5";break;case5:mes="6";break;case6:mes="7";break;case7:mes="8";break;case8:mes="9";break;case9:mes="10";break;case10:mes="11";break;case11:mes="12";break;}}}
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();Datamostra_data;mostra_data=newData();
tudo isso so pega se o codigo estiver bem estruturado
se voce querer eu posto o codigo de salvar.
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
Y
yurisisbell
yurisisbell:
jerson:
Não poderia ser só esse select?
select “campos” where data_devo >= getdate()
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
apenas tenho que conseguir comparar o campo que estou gravando com o getDate do bd abraços
R
ricardoal
eu tbm tava com problema pra salvar fui lar no mysql e mudei o banco de dados pra varchar
J
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?
R
ricardoal
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);
J
jerson
Corrigindo:
O formato DATA é com aspas simples:
Ex. SELECT * FROM TABELA WHERE CAMPO_DATA = ‘20121010’
INSERTINTOTABELA(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?
Y
yurisisbell
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?
cara sim eu consigo mas eu só consigo inserir desse modo porque no banco de dados essa varavel está como varchar!
Y
yurisisbell
sim sim eu fiz isso mass na hora de comparar com o getDate()
M
msergiost
.
Y
yurisisbell
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.
Resolvi
Vou passsar a inserir a data nesse formato
insertintoaqui(data2)values('19990101')
e na hora de comparar
select * from aqui where data2<getdate()
assim funciono certim