Trabalhando com data e hora no MySQL de forma ágil e fácil

Fala galera, a alguns dias estou arquitetando vir aqui e escrever um post legal para voltarmos de vez com o TecleAlgo! Devido a correria o post demorou um pouco, mas vamos logo ao que interessa né!

Hoje estava trabalhando em um site, e me deparei com algumas situações “complicadas” e todas estavam relacionadas em extrair pedaços (‘trechos’ para ficar mais formal) de uma data que vem do meu banco de dados.

Estou trabalhando com MySQL (que além de estável, é seguro e gratuito) e ele tem algumas funções para trabalharmos com a data e hora que está armazenada no banco de dados. Para isso precisamos apenas que o campo da tabela seja de algum tipo de data ou hora, eles podem ser:

DATE – Aceita o formato Y-m-d
DATETIME – Aceita o formato Y-m-d H:i:s

Onde, Y (Year) é o ano, m(Month) é o mês, d (Day) é o dia, H (Hour) é a hora, i são os minutos e s os segundos.

Para exibir a data, você faria a seguinte consulta:

Dado na tabela: 2012-06-15
SELECT data FROM nome-tabela
Resultado: 2012-06-15

A partir destes dados, podemos extrair apenas um pedaço da expressão de hora. Por exemplo se você salvou uma data no seu banco, (pode ser o ser aniversário) e quiser mostrar apenas o dia, você faria a seguinte consulta:

Dado na tabela: 1989-06-17
SELECT DAY(data) FROM nome-tabela
Resultado: 17

Perceba que a função DAY() me trouxe apenas o dia do campo selecionado, no caso “data”.

É possível trazer qualquer parte do campo data com as funções:
DAY() – Retorna a data do campo
MONTH() – Retorna o mês do campo

Dado na tabela: 1989-06-17
SELECT MONTH(data) FROM nome-tabela
Resultado: 6

YEAR() – Retorna o Ano

Dado na tabela: 1989-06-17
SELECT YEAR(data) FROM nome-tabela
Resultado: 1989

Galera, vou fazer um pequena pausa no tutorial, e assim que der eu divulgo a continuação dele com as funções de hora. Fique ligado!

Até Mais!

4 comentários sobre “Trabalhando com data e hora no MySQL de forma ágil e fácil

  1. Muito maneiro, essas funções que o MySQL disponibiliza facilitam muito na hora de programar qualquer coisa.

  2. Obrigado amigo, irá facilitar muito minha aplicações. Fique com uma Dúvida se por acaso, fosse fazer uma comparação na tabela 20/09/2013 WHERE DAY(reserva_entrada) >= 20 AND MONTH(reserva_entrada) >= 09 AND YEAR(reserva_entrada) >= 2013 , teria que fazer dessa forma? Obrigado

  3. Pedro Henrique

    Olá estou com um problema na minha querie e gostaria de ajuda, tenho uma tabela, que tem as seguintes colunas : data, taxa juros, taxa IOF. Essa tabela é alimentada quinzenalmente, e gostaria de fazer uma querie ou função para pegar a data mais recente inserida no banco. Teria algum comando do MYSQL que eu poderia usar. Abs

  4. estou desenvolvendo um sistema simples mais não tenho muita experiencia em programação, e gostaria de saber se poderia me dar um exemplo de como bloquear um usuário por falta de pagamento mensal, pois meu sistema o usuário só vai ter acesso aos dados se realizar o pagamento mensal, pode me ajudar? emersonmaxwell@yahoo.com.br

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s