Ir ao conteúdo
  • Cadastre-se

DateTimePicker


rcb

Posts recomendados

Estou tentando gravar data no meu banco de dados que é SQL Server, o campo no banco de dados é datetime.

O código que estou gravando é:

  Query1.SQL.Add(' INSERT INTO Atendimento VALUES ');
Query1.SQL.Add(' ('+codigo.Text+', "'+nome.Text+'", [COLOR="Red"][B]"'+DateTimePicker1.format+'"[/B][/COLOR], "'+sistema.Text+'", "'+atendimento.Text+'")');
Query1.EXECSQL;
Query1.SQL.Clear;

Porém ele grava da seguinte maneira no banco de dados 01/01/1900, porque isso ocorre?

Qual maneira correta de gravar?

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Fala rcb, acho que o DateTimePicker vai usar o formato do seu so, no caso deve ser windows brasil e este é o nosso formato, usa a função formatdatetime('dd/mm/yyyy hh:nn:ss',time) para trabalhar com datas e horas que você precisar onde:

d - retorna o dia (na forma 6), dd - retorna o dia (na forma 06), ddd - retorna o dia da semana Qui, dddd - retorna o dia da semana. Quinta Feira, etc.., m é o mês, y é o ano, h é a hora, n é o minuto,

s é o segundo. No SQL se não me engano o formato tem que ser 2010-04-13, então você usaria formatdatetime('yyyy-mm-dd',time) e time é qualquer coisa que te dê uma medida de data/tempo, por exemplo, o datatimepicker... Abraços e até mais...

Link para o comentário
Compartilhar em outros sites

  • 3 anos depois...

Olá Fabrícia,

Aqui:

',Convert(datetime,'''+EdDtInicial.Format+''','')'+
',Convert(datetime,'''+EdDtFinal.Format+''',''))' ;

Creio que EdDtInicial/EdDtFinal seja um DateTimePicker, certo?

Bom, você provavelmente não vai precisar da função Convert(), pois você já vai fornecer a string da data num formato padrão (ISO). Então, teste o seguinte:

begin

dInicial := FormatDateTime('yyyymmdd', EdDtInicial.Date);
fFinal := FormatDateTime('yyyymmdd', EdDtFinal.Date);

DMSystem.QCadUsuario.SQL.Text :=
'INSERT INTO [System].[dbo].[CadUsuario]' +
'([RegUser] ' +
',[NomeUser] ' +
',[PerfilUser] ' +
',[SenhaUser] ' +
',[EfeDInicial] ' +
',[EfeDFinal]) ' +
'VALUES ' +
'('+EdRegistro.Text+
','''+EdNome.Text+'''' +
','''+EdPerfil.Text+'''' +
','+EdSenha.Text+
','''+[B]dInicial[/B]+''' +
','''+[B]fFinal[/B]+''')' ;

DMSystem.QCadUsuario.ExecSQL;
DMSystem.QCadUsuario.SQL.Text := 'select * from CadUsuario order by RegUser';
DMSystem.QCadUsuario.Active := true;

FCadUsuario.Close;

end;

Declare dInicial e fFinal como String.

Talvez precise fazer algum ajuste com os apóstrofos.. realmente fiquei na dúvida ali. Uma boa alternativa a esse monte de concatenação seria o uso de Parameters. Mas teste primeiro dessa forma para ver se funciona.

Eu fiz uma alternativa (não testado no SQL), caso a minha edição ali dê algum problema:

DMSystem.QCadUsuario.SQL.Text :=
'INSERT INTO [System].[dbo].[CadUsuario]' +
'([RegUser], [NomeUser], [PerfilUser], [SenhaUser], [EfeDInicial], [EfeDFinal])' +
'VALUES ('''+EdRegistro.Text+''', '''+EdNome.Text+''', '''+EdPerfil.Text+'''' + ', '''+EdSenha.Text+''', '''+dInicial+''', '''+dFinal+''')';

[]'s

LNW

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!