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
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.
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.