[RESOLVIDO] Problema em formato Varchar

Bom dia a todos, estou com o seguinte problema:

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.

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();
    }

}

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.

Exemplo: https://www.mkyong.com/jdbc/how-to-insert-date-value-in-preparedstatement/

Abraço.

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.

Era este o erro mesmo, muito obrigado amigo!