none
Corrigir campo de hora no datetime RRS feed

  • Pergunta

  • Oi Boa tarde, 

    Eu estou usando o sql server 2005

    e declarei um campo com datetime, porém ele retorna a hora sempre 00:00:00.000.

    Ex: 2014-04-06 00:00:00.000

    E quando vou executar a minha aplicação no visual studio ele não compila por causa de erro.

    Como posso arrumar isso ? 

    quarta-feira, 4 de junho de 2014 18:48

Respostas

Todas as Respostas

  • Maria,

    Qual seria o erro que está ocorrendo no Visual Studio ?

    Abraços !


    Diego Murakami View Diego Murakami's LinkedIn profile - MCP, MS, MCSD
    * Por favor "Marcar como Resposta" caso esta for útil para sua dúvida.

    quarta-feira, 4 de junho de 2014 18:50
  • O servidor não pôde processar a solicitação. ---> System.Data.SqlTypes.SqlTypeException: Estouro de SqlDateTime. Deve estar entre 1/1/1753 12:00:00 AM e 31/12/9999 11:59:59 PM.

    Eu cheguei a essa conclusão pois no debug ele adiciona a data, mas a hora fica sempre zerada. 

    Fui testar no sql server e realmente ele não está inserindo a hora. 

    quarta-feira, 4 de junho de 2014 18:53
  • Maria,

    O que está ocorrendo na sua solicitação no banco é que você está enviando um datetime com o formato errado.

    Tente enviar a informação de data no formato solicitado.

    Se estiver enviando uma data, tente enviar dessa forma. Segue exemplo:

    create table teste (id integer, mydate datetime);
    
    insert into teste (id, mydate) values (1, '2012-12-30');
    
    -- ou
    
    insert into teste (id, mydate) values (1, '2012-12-30 00:00:00');
    
    select * from teste;

    ps: Se quiser testar seus scripts, use o SQL Fiddle

    Teste e poste seus resultados.

    Abraços !


    Diego Murakami View Diego Murakami's LinkedIn profile - MCP, MS, MCSD
    * Por favor "Marcar como Resposta" caso esta for útil para sua dúvida.

    quarta-feira, 4 de junho de 2014 19:22
  • eu estou fazendo esse teste e me retorna a mesma coisa.

    Segue o teste:

    insert into MINHATABELA (id,data_inicio) values (6,'04-06-2014')
    select data_inicio from MINHATABELA  where id  = 6

    Resultado: 2014-04-06 00:00:00.000

    quarta-feira, 4 de junho de 2014 19:26
  • Então faça assim:

    select id, CONVERT(VARCHAR, mydate,120) from teste;

    Se quiser saber mais sobre esse convert, veja esses links:

    CAST and CONVERT (Transact-SQL)

    SQL Server CONVERT() Function

    Abraços !


    Diego Murakami View Diego Murakami's LinkedIn profile - MCP, MS, MCSD
    * Por favor "Marcar como Resposta" caso esta for útil para sua dúvida.

    quarta-feira, 4 de junho de 2014 19:34
  • Resultado:

    1 2014-04-06 00:00:00
    2 2014-04-06 00:00:00
    3 2014-04-06 00:00:00
    4 2014-04-06 03:03:03 (esse foi um teste que eu fiz na mão)
    5 2014-04-06 00:00:00
    6 2014-04-06 00:00:00
    7 2012-12-30 00:00:00

    quarta-feira, 4 de junho de 2014 19:35
  • Era isso que você queria de retorno ?

    Ou era alguma outra coisa ?

    Abraços !


    Diego Murakami View Diego Murakami's LinkedIn profile - MCP, MS, MCSD
    * Por favor "Marcar como Resposta" caso esta for útil para sua dúvida.

    quarta-feira, 4 de junho de 2014 19:38
  • Na verdade eu queria que aparecesse as horas, não aparece e por isso eu não consigo gerar a minha aplicação.
    quarta-feira, 4 de junho de 2014 19:42
  • se as horas ficarem: 00:00:00 não funciona
    quarta-feira, 4 de junho de 2014 19:43
  • Então o que você quer salvar na base é o horário e você não está conseguindo. É isso ?

    Diego Murakami View Diego Murakami's LinkedIn profile - MCP, MS, MCSD
    * Por favor "Marcar como Resposta" caso esta for útil para sua dúvida.

    quarta-feira, 4 de junho de 2014 20:13
  • sim, é isso
    quarta-feira, 4 de junho de 2014 20:54
  • Deleted
    • Marcado como Resposta Maria_15 quinta-feira, 5 de junho de 2014 11:35
    quinta-feira, 5 de junho de 2014 00:22
  • Deleted
    • Marcado como Resposta Maria_15 quinta-feira, 5 de junho de 2014 11:35
    quinta-feira, 5 de junho de 2014 09:30