none
modificar dia em data sql RRS feed

  • Pergunta

  • galera bom dia!!

    Gostaria de modificar o dia em data composta  desta forma 1999-01-15

    gostaria de sempre q fosse dia 15 fosse alterado para dia 01

    por exemplo  a data 1999-01-01

    eu colocando

    um where assim

    where day(TIME) = '15'

    ele mostra todas as data com dia 15

    mas no set eu não conseguria com isso set day(time) = 01

    where day(TIME) = '15'

    certo?

    quarta-feira, 21 de março de 2012 15:09

Respostas

  • Brown, faça o select antes para ver se é o resultado esperado. Depois faça uma cópia da tabela e execute o update

    select Data2 = cast(cast(YEAR(Data) as varchar(4)) 
    					+ right('00'+cast(MONTH(Data) as varchar(2)),2)
    					+ '01' as DATE), Data from tabela 
    where DAY(Data) = 15
    
    update tabela set
    Data = cast(cast(YEAR(Data) as varchar(4)) 
    					+ right('00'+cast(MONTH(Data) as varchar(2)),2)
    					+ '01' as DATE), Data from tabela 
    where DAY(Data) = 15					


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    • Marcado como Resposta Heloisa Pires segunda-feira, 26 de março de 2012 13:17
    quarta-feira, 21 de março de 2012 15:28
  • Eduardo

    Usei o seu poste e consegui alterar o dia como queria.


    só que no update faltou tirar:

    Data from tabela

    update tabela set
    Data = cast(cast(YEAR(Data) as varchar(4)) 
    					+ right('00'+cast(MONTH(Data) as varchar(2)),2)
    					+ '01' as DATE), Data from tabela 
    where DAY(Data) = 15

    Valeu

    Abraço




    • Marcado como Resposta Brown11 quarta-feira, 28 de março de 2012 14:27
    quarta-feira, 21 de março de 2012 18:21
  • É verdade... que vc q deu certo! Se te ajudou, classique a Thread para ajudar os demais usuários do fórum.

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    • Marcado como Resposta Brown11 quarta-feira, 28 de março de 2012 14:27
    quarta-feira, 21 de março de 2012 18:43

Todas as Respostas

  • Brown, faça o select antes para ver se é o resultado esperado. Depois faça uma cópia da tabela e execute o update

    select Data2 = cast(cast(YEAR(Data) as varchar(4)) 
    					+ right('00'+cast(MONTH(Data) as varchar(2)),2)
    					+ '01' as DATE), Data from tabela 
    where DAY(Data) = 15
    
    update tabela set
    Data = cast(cast(YEAR(Data) as varchar(4)) 
    					+ right('00'+cast(MONTH(Data) as varchar(2)),2)
    					+ '01' as DATE), Data from tabela 
    where DAY(Data) = 15					


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    • Marcado como Resposta Heloisa Pires segunda-feira, 26 de março de 2012 13:17
    quarta-feira, 21 de março de 2012 15:28
  • Olá Brown11,

    Você deve fazer um comando update simple, apenas atente para que todas condições da clausula WHERE sejam atendidas.

    exemplo:

    create table datas (
    	data datetime default(getdate())
    )
    
    insert into datas default values
    
    update datas set data = '20120325' where data = getdate()

    Note que fiz o update inserindo a data no formato chinês YYYYMMDD (sem separação), com este formato de data você nunca terá problemas com o formato configurado no servidor.

    abraços.

    se útil, classifique.


    Dhiego Piroto - MCP | MCTS SQL Server 2008 Developer | Email: dhiegopiroto@gmail.com é de SP e Vai ao SQL Saturday #127?


    • Editado DhiegoPiroto quarta-feira, 21 de março de 2012 15:37
    quarta-feira, 21 de março de 2012 15:33
  • A datas já estão inseridas no banco

    e só pretendo alterar o dia.

    O caso não é inserir dados e sim alterar os que já stão lá q são mtos desde de 1994

    quarta-feira, 21 de março de 2012 17:02
  • Boa Tarde,

    Subtraia os dias. Ex:

    SELECT Data, DATEADD(D,-14,Data) FROM Tabela WHERE DAY(Data) = 15 -- Para verificar

    UPDATE Tabela SET Data = DATEADD(D,-14,Data) WHERE DAY(Data) = 15 -- Para atualizar

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos:http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível

    quarta-feira, 21 de março de 2012 18:09
  • Brown, veja o exemplo citado na minha thread acima. Acredito que resolverá o seu problema.

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    quarta-feira, 21 de março de 2012 18:09
  • Eduardo

    Usei o seu poste e consegui alterar o dia como queria.


    só que no update faltou tirar:

    Data from tabela

    update tabela set
    Data = cast(cast(YEAR(Data) as varchar(4)) 
    					+ right('00'+cast(MONTH(Data) as varchar(2)),2)
    					+ '01' as DATE), Data from tabela 
    where DAY(Data) = 15

    Valeu

    Abraço




    • Marcado como Resposta Brown11 quarta-feira, 28 de março de 2012 14:27
    quarta-feira, 21 de março de 2012 18:21
  • É verdade... que vc q deu certo! Se te ajudou, classique a Thread para ajudar os demais usuários do fórum.

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    • Marcado como Resposta Brown11 quarta-feira, 28 de março de 2012 14:27
    quarta-feira, 21 de março de 2012 18:43
  • Valeu brigadão!!!
    quarta-feira, 28 de março de 2012 14:27