none
Tratamento de data RRS feed

  • Pergunta

  • Bom Dia!

    Pessoal,

    Eu estou tentando gravar uma data no mysql atraves do aplicativo que estou desenvolvendo em vb.net, porém, está dando problema na hora de gravar devido ao mysql ter o padrão de data (yyyy/mm/dd) 

    Eu estou digitando (dd/mm/yyyy) mas preciso converter na hora de gravar no banco para (yyyy/mm/dd) 

    Como faço isto?

    desde já obrigado!


    sexta-feira, 11 de setembro de 2015 14:13

Respostas

Todas as Respostas

  • Qual o codigo sql que voce está usando e qual o erro apresentado?

    Microsoft Technology Associate (MTA)

    sexta-feira, 11 de setembro de 2015 15:38
  • Boa Tarde!

    SEGUE ABAIXO O CÓDIGO E MAIS ABAIXO O ERRO:

    Dim ComandoEstoque As New MySqlCommand
            ComandoEstoque.CommandText = "Insert Into itens_estoque (coditem,den_item,unid_med,qtde_item,dt_entrada,hr_entrada,cliente,fornecedor,observacao) 
            Values('" & TxtCodItem.Text & "','" & TxtDenItem.Text & "','" & CboUnidMedida.Text & "','" & TxtQuantidade.Text & "','" & MskDataEntrada.Text & "','" & MskHoraEntrada.Text & "','" & CboCliente.Text & "','" & CboFornecedor.Text & "','" & TxtObservacao.Text & "')"

            ComandoEstoque.CommandType = CommandType.Text
            ComandoEstoque.Connection = ConnEstoque
            Dim GravaEstoque As Integer
            GravaEstoque = ComandoEstoque.ExecuteNonQuery

    MENSAGEM DE ERRO ABAIXO:

    An unhandled exception of type 'MySql.Data.MySqlClient.MySqlException' occurred in MySql.Data.dll

    Additional information: Incorrect date value: '11/09/2015' for column 'dt_entrada' at row 1

    sexta-feira, 11 de setembro de 2015 18:13
  • Boa tarde

    A inclusão  está sendo feita via procedure?

    Se sim, vc pode fazer um convert dentro da sua procedure na hora de incluir na tabela a data.

    Cria uma variavel do tipo date e nela vc atribui o valor convertido que vc vai receber igual no exemplo abaixo.

    PS: 112 = conversão do tipo aaaa/mm/dd

    DECLARE DATA AS DATE DATA = CONVERT(VARCHAR(8), @DATA, 112)




    sexta-feira, 11 de setembro de 2015 20:37
  • porque voce nao parametriza,ao inves de ficar concatenando os valores?

    http://stackoverflow.com/questions/15865249/vb-net-generating-mysql-query-using-variables

    como está a estrutura da tabela?


    Microsoft Technology Associate (MTA)

    sexta-feira, 11 de setembro de 2015 21:19
  • Para o mysql você pode usar o formato 'yyyy-mm-dd' e usar o Convert para converter o texto em data. ex:

    Convert.ToDateTime(MskDataEntrada.Text).ToString("yyyy-mm-dd")


    Bruno Ferreira de Souza
    MVP - Microsoft Valuable Professional
    MCTS .NET Framework - Windows Applications
    MCPD .NET Framework - Windows Applications
    www.maestrodotnet.com.br
    @BrunoMaestro

    segunda-feira, 14 de setembro de 2015 03:21
  • Bom Dia!

    A dica do Eduardo deu certo, porém, está gravando o mês da data como 00, ex. 14-00-2015, mesmo digitando 14-09-2015 ele grava na tabela 2015-00-14, segue o código.

    Estou convertendo a data e jogando dentro da variável DataEntrada e colocando este variável no insert conforme abaixo, e respondendo a pergunta acima, não estou utilizando procedure.

    Dim DataEntrada = Convert.ToDateTime(MskDataEntrada.Text).ToString("yyyy-mm-dd")

            Dim ComandoEstoque As New MySqlCommand
            ComandoEstoque.CommandText = "Insert Into itens_estoque (coditem,den_item,unid_med,qtde_item,dt_entrada,hr_entrada,cliente,fornecedor,observacao) 
            Values('" & TxtCodItem.Text & "','" & TxtDenItem.Text & "','" & CboUnidMedida.Text & "','" & TxtQuantidade.Text & "','" & DataEntrada & "','" & MskHoraEntrada.Text & "','" & CboCliente.Text & "','" & CboFornecedor.Text & "','" & TxtObservacao.Text & "')"

    segunda-feira, 14 de setembro de 2015 14:06
  • Tente com "yyyy-MM-dd"

    Bruno Ferreira de Souza
    MVP - Microsoft Valuable Professional
    MCTS .NET Framework - Windows Applications
    MCPD .NET Framework - Windows Applications
    www.maestrodotnet.com.br
    @BrunoMaestro

    • Marcado como Resposta Rodrigo Rx3Info segunda-feira, 14 de setembro de 2015 16:31
    segunda-feira, 14 de setembro de 2015 16:15
  • Estranho, não entendi porque deve ser (MM) e com (mm) não funciona, mas beleza, funcionou, muito obrigado 
    segunda-feira, 14 de setembro de 2015 16:31