Silvio luis Postado Dezembro 30, 2009 Denunciar Share Postado Dezembro 30, 2009 Bom dia pessoal,Estou tentando fazer rodar essa instrução mas não estou conseguindo, estou usando sql2008alguém tem alguma dica para resolver o meu problema?UPDATE CLIENTES SET (day(cliente_aniversario)) = 20 where cliente_id= 91o campo esta como smallldatetime, e quero fazer o update somente na data.obrigado pela atençãoSilvio Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Dezembro 30, 2009 Denunciar Share Postado Dezembro 30, 2009 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Silvio luis Postado Janeiro 5, 2010 Autor Denunciar Share Postado Janeiro 5, 2010 assimeu tenho essa coluna com o aniversario dos clientes, digamos que na digitação ele tenha errado o dia ou mes ou ano, ai quero fazer update somente naquela parte do data que esta errada.se não consegui ser claro é só falar.Silvio Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Janeiro 5, 2010 Denunciar Share Postado Janeiro 5, 2010 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Silvio luis Postado Janeiro 5, 2010 Autor Denunciar Share Postado Janeiro 5, 2010 seria ótimo resolver dessa forma, mas no sistema nos temos um select para o dia, outro para o mes e outro para o ano, com um ajax para atualizar no banco assim que é escolhido, cada uma das partes do ano.Silvio Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Janeiro 5, 2010 Denunciar Share Postado Janeiro 5, 2010 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Janeiro 5, 2010 Denunciar Share Postado Janeiro 5, 2010 acho q isso resolveria não??update CLIENTES set cliente_aniversario = cast(YEAR(cliente_aniversario) as varchar) + '-' + cast(MONTH(cliente_aniversario) as varchar) + '-20' where cliente_id= 91 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Silvio luis
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
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.