MYSQL - Como inserir e extrair data de banco de dados no formato DD/MM/AAAA

Olá galera, estou trabalhando com um banco de dados dentro do PHP, nesse banco tenho várias datas no formato DD/MM/AAAA armazenadas em um banco de dados com os campos do tipo TEXT, quero alterar esses campos para tipo DATE, só que o campo do tipo DATE não suporta datas no formato DD/MM/AAAA, se não me engano só suporta no formato AAAA/MM/DD, gostaria de saber como devo proceder nos seguintes casos:

1º inserir a data digitada digitada pelo usuário (DD/MM/AAAA), no banco com o formato AAAA/MM/DDD (que é o formato de data suportado pelo banco)
2º depois de a data já armazenada no banco (AAAA/MM/DD) como extraí-la no formato DD/MM/AAAA para exibir para o usuário posteriormente.
3º em um outro formulário, o usuário vai digitar um mês e um ano, diante disso, vou precisar extrair dados de uma tabela somente quando a data armazenada estiver dentro do mês e ano digitados pelo usuário

Desde já agradeço a atenção.

O formato que o banco de dados MySQL aceita a inserção de datas (DATE) é sempre yyyy-mm-dd (yyyy-MM-dd para o Java).
Você pode usar as funções explode e implode do PHP para adequar o formato que você deseja.
É sempre uma má idéia salvar datas como texto/varchar/char.

[quote=drsmachado]O formato que o banco de dados MySQL aceita a inserção de datas (DATE) é sempre yyyy-mm-dd (yyyy-MM-dd para o Java).
Você pode usar as funções explode e implode do PHP para adequar o formato que você deseja.
É sempre uma má idéia salvar datas como texto/varchar/char.[/quote]

mas como eu usaria essas funções na hora e armazenar no banco e na hora de extrair do banco as datas?

Você define variáveis com que objetivo? Enfeitar o código ou armazenar valores para utiliza-los durante a execução da aplicação?
Tua aplicação possui controle de acesso de usuários (login)? Se sim, como você faz para utilizar? A idéia é a mesma.
Se quiser informações sobre como utilizar as funções, procure no php.net.

http://php.net/manual/en/datetime.createfromformat.php

Olá Leandro,

Como já pontuado, é desaconselhável usar tipo de dados diferentes de date, timestamp para armazenar datas.

Você pode inserir a data normalmente no formato do banco, pois, existem funções para que seja realizada a conversão dos dados, procure por date format.

No meu blog já postei um artigo sobre uma função para realizar a formatação, (procure por função para formatar datas no mysql) como também para obter ano e mês separadamente em consultas.

Espero ter ajudado.

Fabiano Abreu
Papo SQL | Um blog com tutoriais, dicas e truques sobre SQL