+4

Como o MySQL pode facilitar a sua vida

criado por Diego Hellas em 14/07/2007 7:41am
NOW() e intervalos

SELECT NOW() – irá retornar a data e hora atual do servidor MySQL no formato
aaaa-mm-dd hh:mm:ss


SELECT NOW() + INTERVAL 2DAY – irá retornar a data e hoira do servidor, só que com uma diferença de 2 dias para frente(ex: hoje é 2006-10-07 ele irá retornar 2006-10-09), essa diferença pode ser negativa também, e o intervalo pode ser horas, minutos, segundos, dias, semanas, meses, anos, etc;

Formatando datas com o DATE_FORMAT()

Sintaxe:
DATE_FORMAT(campo, ‘formato desejado’)

Especificador     Descrição
%M                Nome do mês (January..December)
%W                Nome do dia da semana (Sunday..Saturday)
%D                Dia do mês com o sufixo em Inglês (1st, 2nd, 3rd, etc.)
%Y                Ano, numérico, com 4 dígitos
%y                Ano, numérico, com 2 dígitos
%a                Nome do dia da semana abreviado (Sun..Sat)
%d                Dia do mês, numérico (00..31)
%e                Dia do mês, numérico (0..31)
%m                Mês, numérico (01..12)
%c                Mês, numérico (1..12)
%b                Nome do mês, abreviado (Jan..Dec)
%j                Dia do ano (001..366)
%H                Hora (00..23)
%k                Hora (0..23)
%h                Hora (01..12)
%I                Hora (01..12)
%l                Hora (1..12)
%i                Minutos, numérico (00..59)
%r                Horário, 12 horas (hh:mm:ss [AP]M)
%T                Horário, 24 horas (hh:mm:ss)
%S                Segundos (00..59)
%s                Segundos (00..59)
%p                AM ou PM
%w                Dia da semana (0=Domingo..6=Sábado)
%U                Semana (00..53), onde Domingo é o primeiro dia da semana
%u                Semana (00..53), onde Segunda é o primeiro dia da semana
%%                Caractere `%'.

Exemplos de uso:

Lembrando sempre que o MySQL armazena as datas no formato aaaa-mm-dd

Para selecionar a data no formato que usamos, ou de nossa necessidade:

SELECT nome, DATE_FORMAT(data_nascimento, ‘%d/%m/%Y’) AS data
FROM funcionarios

Esse exemplo agora é muio útil, eu sempre uso quando eu tenho um formulário que tem um campo de data e essa data temque ser pesquisada no MySQL, com ela eu evito de ficar transformando a data de dd/mm/aaaa para aaaa-mm-dd

SELECT nome, departamento
FROM funcionários
WHERE
DATE_FORMAT(data_nascimento, ‘%d/%m/%Y’) = ‘22/11/1986’

Função DATEDIFF

Ela calcula a diferença em dias entre duas datas

SELECT DATEDIFF('2006-12-31', '2006-01-01') = 364

Bem e esse é o fim desse artigo, espero que tenha gostado e que ele possa te ajudar muito.

Abraços,

Diego Hellas

Comentários:

Mostrando 1 - 10 de 13 comentários
Diego Hellas disse:
Olá John,

Obrigado!

Achoq ue o date_format é o recurso mais útil para nós que programamos, é muito mais fácil pegar ele correto do que ficar transformando pelo PHP.


Abraços!
25/07/2007 9:21am (~17 anos atrás)

John Marques disse:
Diego parabens mesmo...
realmente muito bom.. esse artigo.. e nem sabia dessas paradinhas...
parabens.. me ajudou muito..
a parte do date_format.. ja quebrou um ganho num preciso fica fazer no PHP..
eheuehuehe

valeu..
24/07/2007 12:34pm (~17 anos atrás)

Diego Hellas disse:
Obrigado Newton!


Abraços!
24/07/2007 9:15am (~17 anos atrás)

Companheiro,

Vc está de parabéns, a comunidade esta dando vivas pra vc ... krk mto bom, quando eu xegar em casa vou testar as paradas ... mto bom mesmo kra ... ae coloque + posts desses q a gente agradece vei ...

show

abs
24/07/2007 7:57am (~17 anos atrás)

Diego Hellas disse:
Falha de digitação :)

Abraços!
17/07/2007 1:36pm (~17 anos atrás)

Realmente, as aspas não são necessárias. Mas é preciso dar um espaço entre o número e o DAY.

No artigo: SELECT NOW() + INTERVAL 2DAY (dá erro)
Com espaço: SELECT NOW() + INTERVAL 2 DAY (aí funciona)
17/07/2007 12:04pm (~17 anos atrás)

Diego Hellas disse:
Olá Jayme,

Obrigado pelos elogios!

Estranho so ter funcionado assim, sempre usei sem aspas e sempre funcionou normalmente, dou aulas de MySQL e sempre mostrei assim e nunca tive problemas.


Abraços!
17/07/2007 11:03am (~17 anos atrás)

Parabéns pelo artigo. Realmente muito útil.
Aqui no meu MySQL/PHP, o cálculo do INTERVAL só funcionou com a seguinte sintaxe:
SELECT NOW() + INTERVAL '2' DAY
17/07/2007 10:49am (~17 anos atrás)

Php Aprendiz disse:
Super Artigo, cara você está de parabéns. estou com php faz uns meses, sempre é bem vindo. artigos novo !
16/07/2007 8:22pm (~17 anos atrás)

Diego Hellas disse:
Obrigado pessoal pelos elogios, pena que demorou pra caramba a liberaç~çao do artigo.. já faz quase um ano que eu escrevi ele e so agora foi liberado!

Mas é isso ai obrigado novamente!!
16/07/2007 10:46am (~17 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)