Vamos descrever 3 exemplos com a função extract.
1º Exemplo: vamos extrair partes da data da coluna "data_exame" da tabela "tb_exame". A tabela contém informações da realização de exames em um laboratório.
extract(parte_da_data from nome_da_coluna)
- parte_da_data: podemos passar qual a parte da data que queremos, por exemplo, day para o dia ou year para o ano, entre outros.
- nome_da_coluna: nome da coluna de uma tabela. Neste caso vamos escolher a coluna "data_exame" da tabela "tb_exame".
A sentença abaixo apresenta alguns argumentos que podem ser passados na função extract.
SELECT
paciente_id,
data_exame,
/*exibe o dia do exame*/
extract(day from data_exame) AS dia,
/*exibe o mês do exame*/
extract(month from data_exame) AS mes,
/*exibe o ano do exame*/
extract(year from data_exame) AS ano,
/*exibe a hora do exame*/
extract(hour from data_exame) AS hora,
/*exibe o minuto do exame*/
extract(minute from data_exame) AS minuto,
/*exibe o segundo do exame*/
extract(second from data_exame) AS segundo,
/*exibe o trimestre do exame, ou seja se o exame foi realizado no 1º, 2º, 3º ou 4º trimestre*/
extract(quarter from data_exame) AS quarter
data_exame,
/*exibe o dia do exame*/
extract(day from data_exame) AS dia,
/*exibe o mês do exame*/
extract(month from data_exame) AS mes,
/*exibe o ano do exame*/
extract(year from data_exame) AS ano,
/*exibe a hora do exame*/
extract(hour from data_exame) AS hora,
/*exibe o minuto do exame*/
extract(minute from data_exame) AS minuto,
/*exibe o segundo do exame*/
extract(second from data_exame) AS segundo,
/*exibe o trimestre do exame, ou seja se o exame foi realizado no 1º, 2º, 3º ou 4º trimestre*/
extract(quarter from data_exame) AS quarter
FROM tb_exame;
Após a execução da sentença acima, temos o resultado exibido na imagem abaixo:
Após a execução da sentença acima, temos o resultado exibido na imagem abaixo:
Segue uma breve descrição, de outros argumentos que podem ser passados na função extract:
- year_month: exibe o ano e mês da data. Ao utilizarmos este argumento para a data "2012-11-13 07:14:24", o resultado exibido é 201211;
- day_hour: exibe o dia a hora da data. Ao utilizarmos este argumento para a data "2012-11-13 07:14:24", o resultado exibido é 1307;
- week: indica quantas semanas se passaram em um determinado ano. A contagem é iniciada pelo 0. Exemplo: a semana para a data "2013-01-03 07:14:24" é 0, pois estamos na primeira semana do ano, já a semana para a data "2013-01-10 07:14:24" é 1, pois estamos na segunda semana do ano, e assim por diante;
2º Exemplo: queremos saber quantos exames foram feitos por ano.
Solução: precisamos agrupar as datas por ano, logo vamos passar o "year" para a função "extract".
SELECT
extract(year from data_exame) AS ano,
/*A função COUNT faz a contagem*/
COUNT(*) AS quantidade
FROM tb_exame
/*Agrupa por ano*/
GROUP BY ano
/*Ordena por ano em ordem crescente*/
ORDER BY ano;
Após a execução da sentença acima, temos a quantidade de exames realizados por ano. Podemos visualizar o resultado na imagem abaixo:
3º Exemplo: queremos exibir os exames que foram realizados em abril de 2013.
Solução: precisamos selecionar os exames que foram realizados no ano de "2013" e no mês "04". Vamos utilizar o parâmetro "year_month" que extrai o ano e o mês da data.
Para obtermos o resultado executamos a sentença abaixo:
SELECT * FROM tb_exame
/*filtra somente os exames que foram realizados em abril de 2013*/
WHERE extract(year_month from data_exame) = 201304
Após a execução da sentença acima, serão exibidos os exames realizados em abril de 2013. Podemos visualizar o resultado na imagem abaixo:
Em breve, postarei mais exemplos de funções com data.
Grande dica Kelly.
ResponderExcluirO tutorial foi de grande ajuda nos complemento dos meus estudos.
Faço o treinamento de MySql pelo curso adv, www.cursoadv.com.br
artigos de pontaaa... vou enviar pro nosso grupo
ResponderExcluirhttp://www.escolatecnicarj.com.br
Obrigado...
ResponderExcluir