Erro no insert

9 respostas
A

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

9 Respostas

pmlm

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

A

kkkkkkkkkkkkkkk
nao acredito

muito obrigado

lelodois

alexandre99:
kkkkkkkkkkkkkkk
nao acredito

muito obrigado

Coloca como resolvido :wink:

A

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:
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;
	
}
e este outro p tranformar em data:
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;
	}
e estou convertendo as String na servlet:
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();
		}
A

Se alguem souber

muito obg

italons

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

pmlm

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

lelodois

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

Hebert_Coelho

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

Criado 5 de agosto de 2010
Ultima resposta 6 de ago. de 2010
Respostas 9
Participantes 5