Se, por algum motivo, um campo data do seu banco de dados foi criado como VARCHAR e você precisa mascarar o resultado de um SELECT em um campo.

Como esse campo é VARCHAR não é possível utilizar somente máscara conforme esse post esse post.

Além de utilizar a máscara você precisa converter a informação do campo para o tipo data, uma vez que até então ela é só uma string. Para essa tarefa o MySql 5 conta com o date_format! O que torna essa tarefa muito mais simples.

1
select DATE_FORMAT(str_to_date('1/1/2008', "%d/%m/%Y"), "%d/%m/%Y");

Como você provavelmente irá precisar utilizar esse campo depois o ideal é utilizar um nome que torne a manipulação mais prática:

1
select DATE_FORMAT(str_to_date('1/1/2008', "%d/%m/%Y"), "%d/%m/%Y") AS date_column;

Um exemplo final,  caso a coluna da tabela fosse dataNascimento:

1
SELECT date_format(str_to_date(dataNascimento, "%d/%m/%Y"),"%d/%m/%Y") AS dataNascimento FROM tbcliente WHERE CodCliente = 44;

abraço,

até…

Não existem posts relacionados.

Tags: , ,

One Response to “MySql: Converter VARCHAR para DATE”

  1. Alan Maia says: |

    Outra forma para atualizar e não exibir é a seguinte:

    UPDATE `tabela` SET `coluna` = date_format( str_to_date(
    coluna , “%d/%m/%Y” ) , “%Y-%m-%d” )

    Assim vc irá atualizar todos os registros do banco para o formato AAAA-MM-DD

    UPDATE `tabela` SET `coluna` = date_format( str_to_date(
    coluna , “%Y-%m-%d” ) , “%d/%m/%Y” )

    Este faz o inverso de YYYY-MM-DD para DD/MM/AAAA

Leave a Reply