Erro no insert

estou com essa instrução:insert into contratos(mod_codigo,data_vigf,cod_fornecedor)values(10,'1111-11-11',12)

e esta gerando esse erro :A conversão de um tipo de dados char em um tipo de dados datetime resultou em um valor datetime fora do intervalo.

estou usando sqlserver e nao sei mt a respeito de banco

Muito obrigado

Experimenta com uma data “mais recente”… :slight_smile:

kkkkkkkkkkkkkkk
nao acredito

muito obrigado

[quote=alexandre99]kkkkkkkkkkkkkkk
nao acredito

muito obrigado[/quote]

Coloca como resolvido :wink:

Logo na sequencia deu este erro: com.microsoft.sqlserver.jdbc.SQLServerException: Erro de conversão ao converter datetime da seqüência de caracteres.

estou usando este metodo:[code]public boolean incluiContrato(ContratoDTO dto) {

boolean resp = false;

StringBuilder sql = new StringBuilder();

sql.append("insert into contratos(mod_codigo, num_licitacao, cod_fornecedor, num_contrato, num_cronograma, objeto, servico_cont, data_vigi, data_vigf, valor_total, valor_unitario, num_procpag, data_pubdou, cod_fiscaltit, cod_fiscalsup, num_portaria)");
sql.append("values('"+dto.getMod_codigo()+"',");
sql.append("'"+dto.getNum_licitacao()+"',");
sql.append("'"+dto.getCod_fornecedor()+"',");
sql.append("'"+dto.getNum_contrato()+"',");
sql.append("'"+dto.getNum_cronograma()+"',");
sql.append("'"+dto.getObjeto()+"',");
sql.append("'"+dto.getServico_continuo()+"',");

sql.append("'"+dto.getVigencia_inicio()+"',");

sql.append("'"+dto.getVigencia_final()+"',");

sql.append("'"+dto.getValor_total()+"',");
sql.append("'"+dto.getValor_unitario()+"',");
sql.append("'"+dto.getNum_proc_pagamento()+"',");

sql.append("'"+dto.getData_DOU()+"',");

sql.append(+dto.getCod_fiscal_titular()+",");
sql.append(+dto.getCod_fiscal_suplente()+",");
sql.append("'"+dto.getNum_portaria()+"')");

try {
	Connection con = ConnectionFactory.getConnection();
	PreparedStatement ps = con.prepareStatement(sql.toString());
	
	int up = ps.executeUpdate();

	if(up == 1){
	resp = true;
}
	con.close();
	
} catch (SQLException e) {
	e.printStackTrace();
}


return resp;

}[/code]

e este outro p tranformar em data:[code] public static java.sql.Date formataData(String data) throws Exception {
if (data == null || data.equals(""))
return null;

	java.sql.Date date = null;
	try {
		DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
		date = new java.sql.Date(((java.util.Date) formatter.parse(data))
				.getTime());
	} catch (ParseException e) {
		throw e;
	}
	return date;
}[/code]

e estou convertendo as String na servlet:[code]try {
dto.setData_DOU(Util.formataData((request.getParameter(“data_dou”))));
dto.setVigencia_final(Util.formataData(request.getParameter(“data_final”)));
dto.setVigencia_inicio(Util.formataData(request.getParameter(“data_inicio”)));

	} catch (Exception e) {			
		e.printStackTrace();
	}[/code]

Se alguem souber

muito obg

seu cast nao deveria ser para java.sql.Date?

Aconselho a ver melhor como usar PreparedStatement e retirar toda essa concatenação de strings e de ’ ’

Recomendo usar hibernate http://www.guj.com.br/posts/list/70592.java

Recomento primeiro entender o PreparedStatement e depois o Hibernate! =D