Uso o banco de dado MySQL
Tenho uma coluna com o nome dataReferida, estou passando o seguinte valor para esta coluna “2018-07-12” ou “2018-07-11”.
Quando uso o formato Varchar ele salva desta forma 1999 quando valor passado é “2018-07-12” e 2000 quando valor passado é “2018-07-11”, ou seja ela esta subtraindo os valores do campo.
Quando uso o formato Date ele retorna a seguinte mensagem de erro “Limite maximo do campo excedido”.
O que pode esta acontecendo, o que poderia ser e não estou percebendo?
Qual o tipo exato no banco de dados? Date/DateTime ou Varchar?
Como você está fazendo a inserção? Está usando PreparedStatement? Pode mostrar o código?
Abraço.
ismaelmartinsds
Tentei com Date e Varchar, acima mostrei quais os erros que cada formato gera.
private void Incluir(){
bdup.dataVencimento=invdata.inverterData(cdh.CapturarData(),2);bdup.valorParcela=bvpc.valorTotalDoPagamento/bvpc.qtdParcelas;sql="insert into tb_duplicata (dataVencimento, valorParcela) "+"values ("+bdup.dataVencimento+", "+bdup.valorParcela+");";sqlstate=parametrosNS.dao.incluirRegistro(sql);if(!sqlstate.equals("00000")){mensagem="Erro ao incluir!";mostraMensagem();}}
TerraSkilll
Não sei qual o seu cenário, mas eu criaria um campo Date no banco e usaria PreparedStatement, ao invés de concatenar os valores com a String, que é ruim de controlar e sujeito à SQL Injection.
Como você não concatenou o bdup.dataVencimento entre apóstrofos, o SQL acha que é uma subtração.
Dica: Quando você monta um String contendo uma query, não concatene os valores nela, ao invés disso utilize PreparedStatement e os tipos de dados apropriados.