none
Erro: Conversion failed when converting date and/or time from character string. RRS feed

  • Pergunta

  • Boa tarde Pessoal,

    Estou tentando inserir uma data como 22/03/1975 para uma propriedade do tipo DateTime:

    public DateTime DataNascimento { get; set; }

    E está dando erro nesta linha:

    DataNascimento = DateTime.Parse(dr["DataNascimento"].ToString()

    Mensagem do erro: Additional information: Conversion failed when converting date and/or time from character string.

    Existe uma forma de adicionar datas no formato que quero inserir?

    sexta-feira, 20 de junho de 2014 18:28

Respostas

  •  Olá,

      use culture info para o padrão Brasileiro veja :

     System.Globalization.CultureInfo cultureinfo =
            new System.Globalization.CultureInfo("pt-BR");
                DateTime dt = DateTime.Parse("2014/12/31", cultureinfo);

    Boa tarde Daniel,

    O problema que estou percebendo no código é que o banco de dados só permite a data, na query de inserção está com a data '31/12/1979 00:00:00'. Preciso passar para ela apenas a data, mas ao criar a propriedade do tipo DateTime, ela automaticamente coloca as horas.

    Você sabe outra alternativa sem ter que mudar o tipo da propriedade DateTime para string?

    • Marcado como Resposta LWMN sexta-feira, 20 de junho de 2014 19:38
    sexta-feira, 20 de junho de 2014 19:20
  • Olá WMN8,

     não tem jeito no C# o tipo DateTime é com data e hora, caso queira gravar só a data você pode user o ToShortDateString() que lhe retorna apenas a Data sem a hora mas no tipo string, se for com DateTime não tem jeito mesmo !

    • Marcado como Resposta LWMN sexta-feira, 20 de junho de 2014 19:38
    sexta-feira, 20 de junho de 2014 19:24

Todas as Respostas

  •  Olá,

      use culture info para o padrão Brasileiro veja :

     System.Globalization.CultureInfo cultureinfo =
            new System.Globalization.CultureInfo("pt-BR");
                DateTime dt = DateTime.Parse("2014/12/31", cultureinfo);

    • Sugerido como Resposta Eduardo xUni sexta-feira, 20 de junho de 2014 18:52
    sexta-feira, 20 de junho de 2014 18:38
  •  Olá,

      use culture info para o padrão Brasileiro veja :

     System.Globalization.CultureInfo cultureinfo =
            new System.Globalization.CultureInfo("pt-BR");
                DateTime dt = DateTime.Parse("2014/12/31", cultureinfo);

    Boa tarde Daniel,

    O problema que estou percebendo no código é que o banco de dados só permite a data, na query de inserção está com a data '31/12/1979 00:00:00'. Preciso passar para ela apenas a data, mas ao criar a propriedade do tipo DateTime, ela automaticamente coloca as horas.

    Você sabe outra alternativa sem ter que mudar o tipo da propriedade DateTime para string?

    • Marcado como Resposta LWMN sexta-feira, 20 de junho de 2014 19:38
    sexta-feira, 20 de junho de 2014 19:20
  • Olá WMN8,

     não tem jeito no C# o tipo DateTime é com data e hora, caso queira gravar só a data você pode user o ToShortDateString() que lhe retorna apenas a Data sem a hora mas no tipo string, se for com DateTime não tem jeito mesmo !

    • Marcado como Resposta LWMN sexta-feira, 20 de junho de 2014 19:38
    sexta-feira, 20 de junho de 2014 19:24
  • Olá WMN8,

     não tem jeito no C# o tipo DateTime é com data e hora, caso queira gravar só a data você pode user o ToShortDateString() que lhe retorna apenas a Data sem a hora mas no tipo string, se for com DateTime não tem jeito mesmo !

    Daniel, funcionou com o ToShortDateString().

    Obrigado!

    sexta-feira, 20 de junho de 2014 19:38