none
Estouro de SqlDateTime. Deve estar entre 1/1/1753 12:00:00 AM e 31/12/9999 11:59:59 PM RRS feed

  • Pergunta

  • erro ao persitir data no sql server 2008

    Estouro de SqlDateTime. Deve estar entre 1/1/1753 12:00:00 AM e 31/12/9999 11:59:59 PM

    o que pode ser ?

    ja troquei ate a propriedade do meu objeto para string, no bando estava datetime, mudei para smalldatetime, mas o erro ainda persiste.

    quinta-feira, 11 de abril de 2013 17:24

Respostas

  • Tente mudar o Default Language do usuário que você está logando no banco e usando na aplicação e faz os testes com os formatos novamente.
    • Sugerido como Resposta Pablotdv domingo, 14 de abril de 2013 01:17
    • Marcado como Resposta Felipo Gonçalves terça-feira, 16 de abril de 2013 18:04
    sexta-feira, 12 de abril de 2013 13:27

Todas as Respostas

  • Olá Paulo,

    Segue duas dicas:

    Verifique o formato do DateTime no Banco. 

    Pode ser que sua aplicação esteja tentando inserir no formato brasileiro "dd/MM/yyyy" e no banco esteja no formato americano ""yyyy-MM-dd".

    Antes de alterar a aplicação, tente inserir algum registro no banco como string (mesmo que seja DateTime dará certo).

    Exemplo: "20/04/2013 10:00:00" e "2013-04-20 10:00:00".

    Verifique também o formato da hora, pois na mensagem de erro apresenta os termos AM e PM:

    Exemplo: "20/04/2013 15:00:00" e "2013-04-20 15:00:00".

    Na sua aplicação, se o tipo for um DateTime (e não for Nullable) a propriedade sempre será inicializada com um valor default (01/01/0001 00:00:00) e se ele não for alterado posteriormente é esta data que será persistida e ocorrerá erro.

    Se a propriedade DateTime não for obrigatória, você terá que declará-la como Nullable.

    Abraços


    • Editado Diego Cotini quinta-feira, 11 de abril de 2013 17:49
    quinta-feira, 11 de abril de 2013 17:37
  • tentei todas essa formas, continua o mesmo erro
    quinta-feira, 11 de abril de 2013 18:15
  • Você tentou diretamente no banco?

    Se você está tentando diretamente no banco e com nenhum destes formatos está sendo possível inserir o registro, o problema com certeza é com o formato do DateTime do banco.

    Dê uma olhada neste post:

    http://social.technet.microsoft.com/Forums/pt-BR/infrageral/thread/6f1fd5f2-d645-4c2f-bb74-91037ec36867/

    quinta-feira, 11 de abril de 2013 18:29
  • Já passei por um erro parecido, quando usa um DateTime e não coloca valor nele, o valor que vem é o default 01/01/0001, quando você tenta salvar essa data no SQL Server ele dá um erro porque não está dentro do range do banco de dados, portando olha o valor da data que ele está passando.
    quinta-feira, 11 de abril de 2013 19:37
  • fiz um insert pelo proprio sql deu certo, passe na data dessa forma: data = '20130411'.

    mas na aplicação nao da certo de jeito nenhum, tentei dessa forma:

    data = DateTime.Parse(txtData.Text).ToStrin("yyyyMMdd");

    mas até agora nada.

    quinta-feira, 11 de abril de 2013 19:40
  • tenta assim yyyy-MM-dd
    quinta-feira, 11 de abril de 2013 19:59
  • fiz dessa forma tambem, não deu certo.
    sexta-feira, 12 de abril de 2013 10:47
  • Tente mudar o Default Language do usuário que você está logando no banco e usando na aplicação e faz os testes com os formatos novamente.
    • Sugerido como Resposta Pablotdv domingo, 14 de abril de 2013 01:17
    • Marcado como Resposta Felipo Gonçalves terça-feira, 16 de abril de 2013 18:04
    sexta-feira, 12 de abril de 2013 13:27
  • Paulo para que isso n ocorra vc deve setar esses paramentros antes da consulta

    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC

    terça-feira, 16 de abril de 2013 16:12
    Moderador