none
C# SQL Server TimeStamp? RRS feed

  • Pergunta

  • Boa tarde a todos...

    Tenho um banco de dados feito no SQL Server onde têm um campo TIMESTAMP que é usado para armazenar data/hora.

    Como não tenho a opção em alterar esse campo, como eu faço para o meu dataGridview exiba as data/hora armazenadas ao invés de exibir Byte[] Array? E como eu faço um select usando o campo Timestamp?

    Obrigado a todos

    quinta-feira, 31 de março de 2011 16:57

Respostas

Todas as Respostas

  • Boa tarde a todos...

    Tenho um banco de dados feito no SQL Server onde têm um campo TIMESTAMP que é usado para armazenar data/hora.

    Como não tenho a opção em alterar esse campo, como eu faço para o meu dataGridview exiba as data/hora armazenadas ao invés de exibir Byte[] Array? E como eu faço um select usando o campo Timestamp?

    Obrigado a todos

    Voce vai ter que usar Byte Array. O Timesamp nao tem nada a haver com data e hora, e apenas um valor binary que a Sql guarda sempre que voce muda um record.

     

     


    Just Be Humble Malange!
    quinta-feira, 31 de março de 2011 17:11
    Moderador
  • Bom dia....

    Toda vez que eu faço um insert into o valor da coluna data/hora (timerstamp) é inserido automaticamente, exemplo 0x0000000000002712. Como eu converto o valor 0x0000000000002712 para data/hora convencional.

    Att.

    segunda-feira, 4 de abril de 2011 12:13
  • Você deve usar outro tipo de dado. O timestamp nada mais é do que um campo que guarda um row version, um valor gerado pelo proprio sql. Muita gente confunde timestamp com data/hora.

    http://msdn.microsoft.com/en-us/library/ms182776.aspx

    http://social.msdn.microsoft.com/forums/pt-BR/transactsqlpt/thread/92843022-35d7-4c0f-b26b-196f20b7513b

    http://imasters.com.br/artigo/245/sql_server/tipos_de_dados_no_sql_server_-_parte_2/

    segunda-feira, 4 de abril de 2011 14:26
  • Bom dia....

    Toda vez que eu faço um insert into o valor da coluna data/hora (timerstamp) é inserido automaticamente, exemplo 0x0000000000002712. Como eu converto o valor 0x0000000000002712 para data/hora convencional.

    Att.

    Voce nao esta a ler o post....

    cria um campo na tabela do tipo date-time. E nao uses o timerstamp. Nao tem haver com hora ou tempo.


    Just Be Humble Malange!
    segunda-feira, 4 de abril de 2011 16:46
    Moderador
  • Me corrija caso eu tenha entendido errado, ou me enganado sobre o que você quis dizer:

    -TimeStamp não tem nada haver com hora ou tempo.

    Acho que tem sim amigo Malange... Pelo menos eu uso com este intuito... Eu uso TimeStamp para pegar data/hora Diretamente do SERVIDOR (para evitar fraude do usuário, para que ele não possa simplesmente alterar data/hora do proprio computador assim burlando o sistema).

    Eu estava com um   problema parecido do Fabio. No meu caso, eu também tenho o campo TimeStamp usado para o motivo citado acima. E agora eu preciso imprimir um relatório onde contenha esta data. Só que não tem como tu pegar data/hora do servidor diretamente da applicação WinForm. Sendo assim, você precisa dar um SELECT no campo para pegar esta data (Este era a minha necessidade, como eu disse, a do Fabio não é a mesma que a minha), inserir este valor lido em uma variável, e depois imprimir este valor no meu relatório... Eu li neste tópico sobre o Byte[] Array ~'

    E o que eu fiz? Criei uma função para converter o Byte[] Array para uma string para imprimir no relatório. Só que acusou o seguinte erro:

    "Não é possível converter DATETIME para Byte[] ..."

    Dai surgiu a ideia, "então da pra passar DIRETO para DateTime, mesmo sendo um TimeStamp" E foi o que eu fiz

    DateTime data;
    
    data = _dal.Consultar(cmd);

    _dal.Consultar => Método que eu criei para fazer busca no banco;

    cmd = meu MySqlcommand cmd = new MySqlCommand();

    Até +

    • Sugerido como Resposta Alan Naidon terça-feira, 9 de outubro de 2012 20:04
    terça-feira, 9 de outubro de 2012 20:04