none
TIMESTAMP RRS feed

  • Pergunta

  •  

    Colagas

     

    Alterei um atributo de DateTime para TimeStamp, pretendo verificar concorrencia a partir deste atributo, até ai Blz...

     

    Só que o Atributo inicia com 1900-01-01 21:40:07.903, seria possível fazer com que ele inicie com a data atual ??

     

    Obrigado

    Bene

    sexta-feira, 29 de fevereiro de 2008 00:41

Respostas

  •  

    Marcelo,

     

    Concordo com vc. Por isso que na minha sugestão o tipo de dado da coluna e datetime.

     

    Code Snippet

    'exemplo 1: adicionando um campo novo na tabela

    ALTER TABLE [owner].[nome_da_tabela] add datStamp datetime NOT NULL CONSTRAINT ck_datStamp DEFAULT (getdate())

     

     

     

     

    sexta-feira, 29 de fevereiro de 2008 13:19
  • cara nao vai rolar com timestamp mesmo, vc. vai quer usar o gerdate() em datetime, para controlar datas.

     

    Abs;

    sexta-feira, 29 de fevereiro de 2008 13:45

Todas as Respostas

  • Bene,

     

     Você pode colocar como default  deste atribudo a função getdate()

    sexta-feira, 29 de fevereiro de 2008 02:21
  • Nenê,

     

    Minha sugestão seria alterar o campo na tabela incluindo uma "constraint do tipo default value"

     

    Um exemplo de como resolver: Exemplo em SQL-Server 2005

     

    'exemplo 1: adicionando um campo novo na tabela

    ALTER TABLE [owner].[nome_da_tabela] add datStamp datetime NOT NULL CONSTRAINT ck_datStamp DEFAULT (getdate())

     

    'exemplo 2: adicionando apenas a constraint (quando o campo já existe na tabela)

    ALTER TABLE [owner].[nome_da_tabela] add constraint ck_datStamp DEFAULT(getdate()) FOR [datStamp]

     

    onde [datStamp] é o nome do campo e ck_datStamp o nome da constraint a ser criada.

     


    Ajude a melhorar o nosso Fórum!
    Não esqueça de marca a mensagem como "útil", caso tenha ajudado.

     

     

     

     

    sexta-feira, 29 de fevereiro de 2008 03:24
  • Bom Dia Benê,

     

    Se a idéia do Timestamp é meramente concorrência, não deveria ser um preocupação verificar a data inicial. A idéia é saber que a data sempre será atualizada quando um INSERT ou um UPDATE ocorrer facilitando o controle de concorrência através desse campo.

     

    A sugestão de mudá-lo para datetime permitiria que você definisse a data inicial, mas iria retirar todas as vantagens do controle de concorrência. Por essa razão recomendo que você continue com o timestamp e não se preocupe com essa data.

     

    Se é importante mostrar a data atual para fins de controle, adicione um outro campo.

     

    [ ]s,

     

    Gustavo

     

    sexta-feira, 29 de fevereiro de 2008 12:06
  • ate porque o timestamp do sql server nao e uma data ele e um valor binario,

     

    Abs/;

     

    sexta-feira, 29 de fevereiro de 2008 12:15
  •  

    Marcelo,

     

    Concordo com vc. Por isso que na minha sugestão o tipo de dado da coluna e datetime.

     

    Code Snippet

    'exemplo 1: adicionando um campo novo na tabela

    ALTER TABLE [owner].[nome_da_tabela] add datStamp datetime NOT NULL CONSTRAINT ck_datStamp DEFAULT (getdate())

     

     

     

     

    sexta-feira, 29 de fevereiro de 2008 13:19
  • Colegas

     

    A ídeia é usar o atributo DataComputador que é do tipo TimeStamp ( sabendo que ele é do tipo binário ), com dupla funcionalidade, ou seja ele irá se alterar automaticamente quando qualquer alteração ou inserção ocorrer e ainda posso converte-lo para DataTime, para saber quando isto ocorreu.

     

    Meu senário envolve o uso do SQL Express que tem limitação de tamanho, então quanto menos atributos melhor, os clientes da empresa que trabalho são de pequeno / medio porte, apenas alguns deles irão comprar o SQL Server de fato, tenho que sempre encontrar uma solução que envolva a maioria dos clientes.

     

    Marcelo Colla

      Respeito muito seu conhecimento, mas com meu cenário o que o Laercio está proponto seria mais interessante.

     

    Laercio da Silva Freitas

      Veja, o que você está propondo ( DEFAULT VALUE ) vai funcionar em update também?

     

    Agradeço a todos.

     

    Obrigado

    Bene

    sexta-feira, 29 de fevereiro de 2008 13:20
  • acho que neste caso, seria interessante usar o getdate() mesmo assim vc. pode usar o controle e aproveitar a data, o incoveninte disso e ter que colocar triggers para alterar o valor depois de um update.

     

    Abs;

     

    sexta-feira, 29 de fevereiro de 2008 13:30
  • Marcelo

     

    Um atributo tipo TimeStamp, ( BINARIO ), quando convertido para DateTime, realmente não existe alguma forma de vir a data Atual?

     

    Ou seja, quando se altera um atributo para TimeStamp o binário é definido de tal forma que quando convertido para DateTime é sempre 1900-01-01 ???

     

    Obrigado

    Bene

     

    sexta-feira, 29 de fevereiro de 2008 13:33
  • cara nao vai rolar com timestamp mesmo, vc. vai quer usar o gerdate() em datetime, para controlar datas.

     

    Abs;

    sexta-feira, 29 de fevereiro de 2008 13:45