Sobre fluxo de caixa

9 respostas
V

Olá,

Estou pensando em montar um módulo de fluxo de caixa no meu sistema, enviando uma data de início e fim.

Estou utilizando:

Calcular o fluxo de caixa de <input type="text" name="dataInicio" id="dataInicio"> até <input type="text" name="dataFim" id="dataFim">

No meu banco de dados o campo data está no seguinte padrão: aaaa-mm-dd

Como posso fazer para transformar o dado que eu receber para esse padrão?

Obrigado,
Vinicius.

9 Respostas

M

Cara, Eu uso assim acho que pode te ajudar…

dataFormatada = new StringBuffer("");

if (rs.getString(“dt_nascimento”) != null) {

dataFormatada.append(rs.getString(“dt_nascimento”).substring(8, 10));

dataFormatada.append("/");

dataFormatada.append(rs.getString(“dt_nascimento”).substring(5, 7));

dataFormatada.append("/");

dataFormatada.append(rs.getString(“dt_nascimento”).substring(0, 4));}

aaaa/mm/dd

V

Olá,

Você pode colocar a data que entra e a data que sai?

O usuário precisa digitar as barras?

Esta apensando em fazer assim, o usuário entra com 08/05/2006 e ela tem que se tranformar em 2006-08-05.

Obrigado,
Vinicius.

J

Faça assim:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dataFormatada = sdf.format(<campo da tela que deve ser um java.util.Date>);
sudeval

cara nao seria melhor tratar isso la no banco mesmo.

setando como o parametro do preparedStatement um Timestamp.

ja ja te posto um exemplo disso!

V

fico aguardando o seu exemplo.

Vinicius.

sudeval

trata a tua data la no VIEW como um objeto Date();

digamos que eu tenha uma tabela Pessoa:
campos:

idPessoa
nomePessoa
nascimento

Ex.:

String sql = "INSERT INTO Pessoa VALUES (1,'Vinucho',?)";

PreparedStatement ps = conn.prepareStatement(sql);
ps.setTimestamp(1,new java.sql.Timestamp(nascimento.getTime()));

ps: nascimento é um Date(), digamos que ele veio como parametro no metodo inserirPessoa(Integer id,String nome,Date data) por exemplo.
com isso o preparedStatement vai cuidar de deixar tua data da forma que o banco usa.( seja qual for o banco)

espero ter ajudado!!!

sudeval

se tu achar que vai ficar complicado de fazer com o teu sistema, o exemplo do juliano seria minha outra dica, aqui eu uso isso, pq no sistema agente us uns adaptor no model, ae ele ja retorna o valor em Date.
nao sei como que esta ae !

V

Consegui transformar, o que está dando errado agora acho q é no mysql, mas acho que está correto, olhem:

public String findTotal1(String inicio, String fim) throws Exception {
		
		Connection conn = null;
		Statement st = null;
		ResultSet rs = null;
        try {          
            conn = Pool.getConnection();
            st = conn.createStatement();
            rs = st.executeQuery("SELECT REPLACE(SUM(REPLACE(valor, ',', '.')), '.', ',') total FROM Despesa WHERE data BETWEEN '"+inicio+"' AND '"+fim+"'");
            if (rs.next())
            	return rs.getString("total")==null?"0,00":rs.getString("total");
		} finally {
			Util.freeResources(new Object[] { conn, st, rs });
		}
        return "0,00";

	}
sudeval

qual erro que esta dando ?

st.executeQuery("SELECT REPLACE(SUM(REPLACE(valor, ',', '.')), '.', ',' total FROM Despesa WHERE data BETWEEN '"+inicio+"' AND '"+fim+"'");

sera que nao tem ‘(’ sobrando ae nao ?

Criado 8 de maio de 2006
Ultima resposta 9 de mai. de 2006
Respostas 9
Participantes 4