Usuário com melhor resposta
C# SQL Server TimeStamp?

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
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!- Sugerido como Resposta Eduardo Cury quinta-feira, 31 de março de 2011 18:40
- Marcado como Resposta Levi DomingosModerator segunda-feira, 4 de abril de 2011 16:44
-
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://imasters.com.br/artigo/245/sql_server/tipos_de_dados_no_sql_server_-_parte_2/
- Marcado como Resposta Levi DomingosModerator segunda-feira, 4 de abril de 2011 16:44
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!- Sugerido como Resposta Eduardo Cury quinta-feira, 31 de março de 2011 18:40
- Marcado como Resposta Levi DomingosModerator segunda-feira, 4 de abril de 2011 16:44
-
-
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://imasters.com.br/artigo/245/sql_server/tipos_de_dados_no_sql_server_-_parte_2/
- Marcado como Resposta Levi DomingosModerator segunda-feira, 4 de abril de 2011 16:44
-
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! -
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