junho 24, 2008

Consultando datas no MySQL

Por Rogerio Coli

Neste artigo eu vou mostrar alguns exemplos de como interagir com datas no banco do MySQL.

O primeiro e mais simples exemplo é efetuar uma consulta nos registros em que o campo ‘data_nascimento’ está povoado e ‘data_registro’ é vazio. Aqui, diferente de outros tipos de colunas, não se usa LIKE e nem =.

SELECT * FROM table WHERE data_nascimento IS NOT NULL AND data_registro IS NULL

Para trazer a data já formatada direto do banco sem ter de tratá-la com a programação, utilize o DATE_FORMAT Neste caso a data é acessada pelo alias: “data_formatada” e pode ser formatada de várias formas. No exemplo abaixo ela aparece no formato ‘dd/mm/yyyy hh:mm:ss’ e ‘dd/mm/yy’ respectivamente.

DATE_FORMAT(tabela.data_nascimento, '%d/%m/%y %H:%i%:%s') AS data_formatada
SELECT * FROM table WHERE cpf='11122233344' AND DATE_FORMAT(data, '%d/%m/%y')

Agora é um exemplo para saber se a data atual (NOW()) está entre uma data de início e final de um determinado período.

SELECT * FROM table WHERE NOW() BETWEEN inicio AND final LIMIT 0,1