Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas de update


Silvio luis

Pergunta

Bom dia pessoal,

Estou tentando fazer rodar essa instrução mas não estou conseguindo, estou usando sql2008

alguém tem alguma dica para resolver o meu problema?

UPDATE CLIENTES SET (day(cliente_aniversario)) = 20 where cliente_id= 91

o campo esta como smallldatetime, e quero fazer o update somente na data.

obrigado pela atenção

Silvio

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Bom dia Silvio,

A sintaxe do update está incorreta. Na verdade, não consegui entender ao certo o que está querendo fazer. Se você quer "updatar" a data, você terá que passar a data. A sintaxe (day(cliente_aniversario)) = 20 deve estar na cláusula WHERE.

Fiz um exemplo logo abaixo pra você entender o q estou querendo falar. Espero q ajude. Qualquer dúvida, posta aí.

create table #tmp (cliente_aniversario smalldatetime, cliente_id int, CampoAlterado int)

insert into #tmp values ('2009-12-30 11:50:00', 91, 55555)

select * from #tmp

UPDATE #tmp SET CampoAlterado= 333333 where cliente_id= 91 and day(cliente_aniversario) = 30

select * from #tmp

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia Silvio,

Ok, entendido. Ao invés de alterar o dia, mês ou ano, altera a data por completo. Caso o cliente erre (na digitação) a data de seu aniversário, o mesmo a digitará novamente. Aí você "updata" o banco com a data certa.

Fica bem mais complexo você controlar se o cliente errou o dia, o mês ou o ano. Independente do que tenha errado, se a informação está errada, faça a correção no campo por completo. :.)

Sintaxe:

UPDATE CLIENTES SET cliente_aniversario = (aqui você coloca a data) where cliente_id= 91

Link para o comentário
Compartilhar em outros sites

  • 0

Putz... rs...

Tenta desta forma então:

create table #tmp (cliente_aniversario smalldatetime, cliente_id int)

insert into #tmp values ('2009-12-25', 91)

select * from #tmp

-- criei uma veriável para setar o valor do dia.
declare @DiaAniversario varchar (2)
Set @DiaAniversario = '10'

-- seria interessante também passar o código do cliente via parametro
UPDATE #tmp SET cliente_aniversario =(convert(varchar, (select year(cliente_aniversario) from #tmp where cliente_id=91)) + '-' 
+ convert(varchar,(select month(cliente_aniversario) from #tmp where cliente_id=91)) 
+ '-' + @DiaAniversario) where cliente_id=91

select * from #tmp

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...