-- Selecione a data atual.
select curdate();
-- Selecione a hora atual.
select curtime();
-- Qtos anos se passaram desde o descobrimento do brasil --
select datediff(curdate(), '1500-04-22')/365;
-- Sabendo que uma olimpiadas se realiza a cada 4 anos e que a proxima sera em 2012(Londres), que ano
-- se realizará a proxima olimpiadas depois de 2012?
select year(date_add('2012-06-15', interval 4 year));
-- Qual o nome do dia da semana que o brasil foi descoberto.
select dayname('1500-04-22');
-- Qual o ultimo dia do mes dos namorados.
select last_day('2010-06-12');
-- Quantos dias ainda restam para o natal
select datediff('2010-12-25', curdate());
-- Quantos dias se passaram desde a morte de Ayrton Senna.
select datediff(curdate(), '1994-05-01');
-- Em que semana do ano o São Paulo conquistou seu primeiro titulo nacional
select week('1978-03-05');
-- Quantos anos se passaram desde o final da primeira guerra mundial
select datediff(curdate(), '1918-11-11')/365;
-- Em que dia da semana foi o "Dia D"?
select dayname('1944-06-06');
-- Com quantos anos, meses e dias Pelé fez seu primeiro gol em copas do mundo.
select floor(datediff('1958-06-19', '1940-10-23')/365) anos;
select floor((datediff('1958-06-19', '1940-10-23')/365)%12) meses;
select floor(((datediff('1958-06-19', '1940-10-23')/365)/12)%30) dias;
-- Quantos dias faltam para o proximo aniversario de Brasilia?
select datediff(2011-04-21, curdate());
-- a quantos anos, meses e dias o brasil libertou os escravos
select floor(datediff(curdate(), '1888-05-13')/365) anos;
select floor((datediff(curdate(), '1888-05-13')/365)%12) meses;
select floor(((datediff(curdate(), '1888-05-13')/365)/12)%30) dias;
-- em que dia da semana Tiradentes foi enforcado
select dayname('1792-04-21');
-- quantos dias e semanas tinham se passado até a proclamacao da republica?
select floor(((datediff(curdate(), '1889-11-15')/365)/12)%30) dias;
select floor((datediff(curdate(), '1889-11-15')/365)%4) semanas; errada
-- Em que semana do ano o homem pisou pela primeira vez na lua?
select week('1969-07-20');
-- quantos dias se passaram entre o tri e tetra campeonato brasileiro de futebol?
select datediff('1994-07-17','1970-06-21' );
-- selecione a data de hoje menos 30 dias
select date_add(curdate(), interval -30 day);
-- em que dia da semana caiu o dia 01-05-1994
select dayname ('1994-05-01');
-- selecione a data de hoje menos 30 dias
select date_add(curdate(), interval -30 day);
-- em que dia da semana caiu o dia 01-05-1994
select dayname ('1994-05-01');
-- quantos dias se passaram entre as missões Apolo XI e Apolo XIII
select datediff('1970-04-11', '1969-07-20');
-- em que semana do ano o google entrou em atividade
select weekofyear ('1998-09-04');
-- qual é o valor de PI arredondado para duas casas decimais
select round(pi(),2);
-- quantos anos tinha o ronaldo fenômeno quando fez o primeiro gol pela seleção brasileira
select
-- em que dia da semana o Brasil foi eliminado pela França na copa de 86
select dayname('1986-06-21');
-- em que dia da semana o Brasil foi eliminado pela França na copa de 06
select dayname('2006-07-01');
-- quantas letras tem a frase "O Brasil é hexa"
select lenght('O brasil e hexa');
-- como descobrir se um determinado ano é bissexto
select last_day('xxxx-02-01');
-- qual o mês atual
select month(curdate());
-- escreva a seguinte frase ao contrário: Socorram-me, Subi no ônibus em Marrocos
select reverse('Socorram me subi no onibus em marrocos');
-- retorne a data de hoje mais 7 dias entre aspas
select quote(date_add(curdate(), interval 7 day));
-- quanto é o ano atual em binário
select bin(2010);
-- quanto é o ano atual em haxadecimal
select hex(2010);
-- qual o valor de 4F6 em decimal
select conv('4F6',16,10);
-- o ano em que o corinthians conquistou seu primeiro titulo mundial interclubes era bissexto
select last_day('2001-02-01');
-- qual o valor hexadecimal da string "FATEC"
select hex('FATEC');
-- retorna o maior valor entre os argumentos fornecidos
select greatest(
(select sum(population) from city),
(select sum(population) from country)
);
select greatest(4,5,8);
select name from country where population = (
select greatest(
(select population from country where name = 'BRAZIL'),
(select population from country where name = 'JAPAN'),
(select population from country where name = 'UNITED STATES')
)
);
-- retorna expressao2 se expressao1 for verdadeiro,
-- caso contrario retorna expressao3
SELECT if(
(select count(id) from city where countrycode = 'BRA') > 5,
(select count(*) from city),
(select count(id) from city where countrycode = 'BRA')
);
-- retorna 0 se as strings forem iguais,
-- -1 se o primeiro argumento for menor e 1 se o
-- segundo argumento for menor;
select strcmp(
(select name from country where code = 'BRA'),
(select name from country where code = 'ARG')
);
-- retorna o valor absoluto da expressao
select abs(-2);
-- retorna um numero inteiro maior ou igual a expressao
-- (arredonda para cima)
select ceil(5/2);
-- retorna um numero menor ou igual a expressao
-- (arredonda para baixo) (DIV)
select floor(5/2);
-- retorna o resto da divisao de exp1 por exp2 (MOD)
select 17 % 4;
-- seleciona a potencia de exp1 elevada a exp2
select pow(4,2);
-- retorna o valor de x arredondado para um numero inteiro
select round(5.5);
-- retorna o numero arredondado para n casas decimais
select round(5.567898765, 3);
-- retorna o codigo ASCII do caracter mais a esquerda
select ascii('a');
-- retorna a representacao binaria no numero especificado
select bin(2010);
-- retorna a quantidade de caracteres
select length('string');
-- concatena duas ou mais strings especificadas
select concat('esta', ' ', 'frase', ' ', 'está', ' ', 'concatenada');
-- concatena utilizando um separador
select concat_ws('|', 'esta', 'frase', 'está', 'concatenada');
-- retorna o numero especificado convertido de uma base para outra base
select conv('61d',16,2);
-- retorna um numero formatado, arredondado para n casas descimais
select format(69.567899, 2);
-- retorna a posicao da primeira ocorrencia da
-- substring na string especificada,
-- iniciando a pesquisa a partir da posicao pos
select locate('ado', 'quadrado', 1);
-- retorna uma string delimitada com aspas simples
select quote('salve o curintia');
-- substitui substring na string especificada
select replace('quadrado', 'ado', 'ido');
-- retorna a string invertida
select reverse(replace('brasil','a','@'));
-- retorna uma string em letras minusculas
select lower('BRASIL');
-- retorna uma string em letras maiusculas
select upper('brasil');
--
select Name,
concat(format(population/surfacearea,2), ' habitantes por Km²') Densidade
from country;
--
select round(pow(lifeexpectancy,2),2) from country;
--
select name, bin(indepyear) from country where indepyear is not null;
--
select name, length(name) from country;
--
select name from country where length(name) = (
select max(length(name)) from country
);
--
select name, replace(name, 'a', '@') from country;
--
select headofstate, lower(reverse(headofstate)) from country;
--
select name, population, quote(indepyear) from country
where continent = 'asia';
--
select name, replace(name, ' ', '') from country;
--
select name, gnp from country where gnp = (
select greatest(
(select gnp from country where name = 'peru'),
(select gnp from country where name = 'paraguay'),
(select gnp from country where name = 'uruguay')
)
);
--
select continent, sum(population) populacao from country
group by continent
having sum(population) = (
select greatest(
(select sum(population) from country where continent = 'europe'),
(select sum(population) from country where continent = 'south america'),
(select sum(population) from country where continent = 'africa')
)
);
-- retorne a densidade demográfica dos países, formatada em duas casas decimais
select name, concat (format(population/surfacearea,2), 'habitantes por km') Densidade from country;
-- retorne a expectativa de vida elevado ao quadrado
select round(pow(lifeexpectancy,2),2) from country;
-- converta as datas de independencia para binario
select name, bin(indepyear) from country where indepyear is not null;
-- exiba o comprimento dos nomes dos paises
select name, length (name) from country;
-- exiba o nome da cidade de nome mais extenso
select name from country where length(name) = (select max(length(name)) from country);
-- substitua nos nomes das cidades todas as letras 'a' para '@'
select name, replace(name, 'a', '@') from country;
-- inverta os nomes dos chefes de estado dos paises sulamericanos
select headofstate, lower(reverse(headofstate)) from country;
-- retorne o nome, a população e a data de independencia entres aspas simples dos paises da asia
select name, population, quote(indepyear) from country where continent = 'asia';
-- retire todos os espaços em branco dos nomes dos paises
select name, replace(name, ' ', '') from country;
--- determine qual dos 3 paises possui o maior GNP: (peru, paraguai, uruguai)
select name, gnp from country where GNP = (
select greatest(
(select GNP from country where name = 'PERU'),
(select GNP from country where name = 'PARAGUAY'),
(select GNP from country where name = 'URUGUAY')
)
);
--- determine qual continente possui a maior populacao: (europa, america do sul, africa)
select continent, sum(population) populacao from country
group by continent
having sum(population) = (
select greatest(
(select sum(population) from country where continent = 'europe'),
(select sum(population) from country where continent = 'south america'),
(select sum(population) from country where continent = 'africa')
)
);
select * from country c;
-- soma toda a populaçao de todos os paises--
select sum(population) from country;
-- soma a populaçao de cada continente separadamente--
select continent sum(population) from country group by continent;
-- exibe a media populacional de cada pais de uma regiao
select continent, region, avg(population) from country group by region;
-- media de vida de cada continente--
select continent, avg(lifeExpectancy) from country group by continent;
-- conta as formas de governo de cada regiao --
select continent, region, count(govermentForm) from country group by region;
-- exibe a media de independencia de cada um dos continentes --
select continent, format (avg(indepYear),2) media from country group by continent
order by media desc;
-- exibe o total de area de cada continente --
select continent, sum(surfaceArea) from country group by continent;
-- exibe o total de area de cada regiao --
select continent, region, sum(surfaceArea) from country group by region order by
continent;
-- exibe o produto interno bruto (GNPse) de cada continente --
select format (sum(gnp),2), continent from country group by continent;
-- exibe as formas de governo de cada continente --
select governmentForm, continent from country group by governmentForm;
-- exibe as regioes de cada continente --
select continent, region from country group by region;
-- mostra a quantidade de paises por continente --
select continent, count(name) from country group by continent
having count(name) > 40 order by coount(name);
-- quantos paises sao idependentes por continente --
select continent, count(indepYear) from country group by continent;
-- quantos paises de cada continente não sao independentes --
select continent, count(indepYear) from country group by
-- exibe o nome dos continentes com gnp maior que 1000000 --
select continenet from country group by continent having (gnp) > 1000000;
-- exibe as regioes com media de vida superior a 75 anos --
-- exibe as regioes com area igual ou inferior a 50000 --
-- exibe os continentes com a populaçao inferior a 12000000 --
-- conta quantos meses de cada continente sao republicanos --
Uma condição estabelecida em uma consulta SQL pode depender do resultado de uma outra consulta
select name,population from country where population = (select max(population) from country); -> retorna o nome do país mais populoso
apelido(alias) de coluna e tabela-> especifica um apelido para uma coluna ou tabela
alias de tabela
select c.name,ct.name from country c, city.ct where c.code = ct.countryCode;
alias de coluna
select sum(surfacearea) area_total from country group by continent;
-- seleciona a data atual no formato AAAA-MM-DD
select curdate();
-- retorna a hora atual no formato HH:MM:SS
select curtime();
-- Extrai somente a parte da data de um datetime
select date('2010-12-19 22:50:32');
-- retorna o numero de dias entre a data inicial e a data final
SELECT DATEDIFF(curdate(), '1997-12-31 23:59:59');
-- retorna uma data adicionada a um intervalo especifico
SELECT DATE_ADD('1997-12-31 23:59:59', INTERVAL 1 SECOND);
SELECT DATE_ADD(CURDATE(), INTERVAL 7 DAY);
SELECT DATE_ADD(CURDATE(), INTERVAL 7 month);
-- retorna o dia da semana por extenso
select dayname(curdate());
-- retorna o dia do mes de uma data
select dayofmonth(curdate());
-- retorna o numero do dia da semana de uma data
-- 1 = domingo, 7 = sabado
select dayofweek(curdate());
-- retorna o dia do ano de uma data
select dayofyear(curdate());
-- retorna a hora de um horario
select hour(sysdate());
-- retorna o ultimo dia do mes da data fornecida(bissexto)
select last_day(curdate());
select last_day('2008-2-1');
select last_day('2010-2-1');
-- retorna o nome do mes por extenso
select monthname(curdate());
select monthname('1997-12-31');
-- seleciona a hora de um datetime
select time(sysdate());
-- retorna a diferenca de horas
select timediff(time(sysdate()),'08:00:00');
-- retorna o numero de dias até a data especificada
select to_days('1910-09-1');
-- retorna o numero da semana de uma data
select week(sysdate());
select week('1996-12-31');
-- retorna o ano de uma data
select year(sysdate());
select curdate();
-- Selecione a hora atual.
select curtime();
-- Qtos anos se passaram desde o descobrimento do brasil --
select datediff(curdate(), '1500-04-22')/365;
-- Sabendo que uma olimpiadas se realiza a cada 4 anos e que a proxima sera em 2012(Londres), que ano
-- se realizará a proxima olimpiadas depois de 2012?
select year(date_add('2012-06-15', interval 4 year));
-- Qual o nome do dia da semana que o brasil foi descoberto.
select dayname('1500-04-22');
-- Qual o ultimo dia do mes dos namorados.
select last_day('2010-06-12');
-- Quantos dias ainda restam para o natal
select datediff('2010-12-25', curdate());
-- Quantos dias se passaram desde a morte de Ayrton Senna.
select datediff(curdate(), '1994-05-01');
-- Em que semana do ano o São Paulo conquistou seu primeiro titulo nacional
select week('1978-03-05');
-- Quantos anos se passaram desde o final da primeira guerra mundial
select datediff(curdate(), '1918-11-11')/365;
-- Em que dia da semana foi o "Dia D"?
select dayname('1944-06-06');
-- Com quantos anos, meses e dias Pelé fez seu primeiro gol em copas do mundo.
select floor(datediff('1958-06-19', '1940-10-23')/365) anos;
select floor((datediff('1958-06-19', '1940-10-23')/365)%12) meses;
select floor(((datediff('1958-06-19', '1940-10-23')/365)/12)%30) dias;
-- Quantos dias faltam para o proximo aniversario de Brasilia?
select datediff(2011-04-21, curdate());
-- a quantos anos, meses e dias o brasil libertou os escravos
select floor(datediff(curdate(), '1888-05-13')/365) anos;
select floor((datediff(curdate(), '1888-05-13')/365)%12) meses;
select floor(((datediff(curdate(), '1888-05-13')/365)/12)%30) dias;
-- em que dia da semana Tiradentes foi enforcado
select dayname('1792-04-21');
-- quantos dias e semanas tinham se passado até a proclamacao da republica?
select floor(((datediff(curdate(), '1889-11-15')/365)/12)%30) dias;
select floor((datediff(curdate(), '1889-11-15')/365)%4) semanas; errada
-- Em que semana do ano o homem pisou pela primeira vez na lua?
select week('1969-07-20');
-- quantos dias se passaram entre o tri e tetra campeonato brasileiro de futebol?
select datediff('1994-07-17','1970-06-21' );
-- selecione a data de hoje menos 30 dias
select date_add(curdate(), interval -30 day);
-- em que dia da semana caiu o dia 01-05-1994
select dayname ('1994-05-01');
-- selecione a data de hoje menos 30 dias
select date_add(curdate(), interval -30 day);
-- em que dia da semana caiu o dia 01-05-1994
select dayname ('1994-05-01');
-- quantos dias se passaram entre as missões Apolo XI e Apolo XIII
select datediff('1970-04-11', '1969-07-20');
-- em que semana do ano o google entrou em atividade
select weekofyear ('1998-09-04');
-- qual é o valor de PI arredondado para duas casas decimais
select round(pi(),2);
-- quantos anos tinha o ronaldo fenômeno quando fez o primeiro gol pela seleção brasileira
select
-- em que dia da semana o Brasil foi eliminado pela França na copa de 86
select dayname('1986-06-21');
-- em que dia da semana o Brasil foi eliminado pela França na copa de 06
select dayname('2006-07-01');
-- quantas letras tem a frase "O Brasil é hexa"
select lenght('O brasil e hexa');
-- como descobrir se um determinado ano é bissexto
select last_day('xxxx-02-01');
-- qual o mês atual
select month(curdate());
-- escreva a seguinte frase ao contrário: Socorram-me, Subi no ônibus em Marrocos
select reverse('Socorram me subi no onibus em marrocos');
-- retorne a data de hoje mais 7 dias entre aspas
select quote(date_add(curdate(), interval 7 day));
-- quanto é o ano atual em binário
select bin(2010);
-- quanto é o ano atual em haxadecimal
select hex(2010);
-- qual o valor de 4F6 em decimal
select conv('4F6',16,10);
-- o ano em que o corinthians conquistou seu primeiro titulo mundial interclubes era bissexto
select last_day('2001-02-01');
-- qual o valor hexadecimal da string "FATEC"
select hex('FATEC');
-- retorna o maior valor entre os argumentos fornecidos
select greatest(
(select sum(population) from city),
(select sum(population) from country)
);
select greatest(4,5,8);
select name from country where population = (
select greatest(
(select population from country where name = 'BRAZIL'),
(select population from country where name = 'JAPAN'),
(select population from country where name = 'UNITED STATES')
)
);
-- retorna expressao2 se expressao1 for verdadeiro,
-- caso contrario retorna expressao3
SELECT if(
(select count(id) from city where countrycode = 'BRA') > 5,
(select count(*) from city),
(select count(id) from city where countrycode = 'BRA')
);
-- retorna 0 se as strings forem iguais,
-- -1 se o primeiro argumento for menor e 1 se o
-- segundo argumento for menor;
select strcmp(
(select name from country where code = 'BRA'),
(select name from country where code = 'ARG')
);
-- retorna o valor absoluto da expressao
select abs(-2);
-- retorna um numero inteiro maior ou igual a expressao
-- (arredonda para cima)
select ceil(5/2);
-- retorna um numero menor ou igual a expressao
-- (arredonda para baixo) (DIV)
select floor(5/2);
-- retorna o resto da divisao de exp1 por exp2 (MOD)
select 17 % 4;
-- seleciona a potencia de exp1 elevada a exp2
select pow(4,2);
-- retorna o valor de x arredondado para um numero inteiro
select round(5.5);
-- retorna o numero arredondado para n casas decimais
select round(5.567898765, 3);
-- retorna o codigo ASCII do caracter mais a esquerda
select ascii('a');
-- retorna a representacao binaria no numero especificado
select bin(2010);
-- retorna a quantidade de caracteres
select length('string');
-- concatena duas ou mais strings especificadas
select concat('esta', ' ', 'frase', ' ', 'está', ' ', 'concatenada');
-- concatena utilizando um separador
select concat_ws('|', 'esta', 'frase', 'está', 'concatenada');
-- retorna o numero especificado convertido de uma base para outra base
select conv('61d',16,2);
-- retorna um numero formatado, arredondado para n casas descimais
select format(69.567899, 2);
-- retorna a posicao da primeira ocorrencia da
-- substring na string especificada,
-- iniciando a pesquisa a partir da posicao pos
select locate('ado', 'quadrado', 1);
-- retorna uma string delimitada com aspas simples
select quote('salve o curintia');
-- substitui substring na string especificada
select replace('quadrado', 'ado', 'ido');
-- retorna a string invertida
select reverse(replace('brasil','a','@'));
-- retorna uma string em letras minusculas
select lower('BRASIL');
-- retorna uma string em letras maiusculas
select upper('brasil');
--
select Name,
concat(format(population/surfacearea,2), ' habitantes por Km²') Densidade
from country;
--
select round(pow(lifeexpectancy,2),2) from country;
--
select name, bin(indepyear) from country where indepyear is not null;
--
select name, length(name) from country;
--
select name from country where length(name) = (
select max(length(name)) from country
);
--
select name, replace(name, 'a', '@') from country;
--
select headofstate, lower(reverse(headofstate)) from country;
--
select name, population, quote(indepyear) from country
where continent = 'asia';
--
select name, replace(name, ' ', '') from country;
--
select name, gnp from country where gnp = (
select greatest(
(select gnp from country where name = 'peru'),
(select gnp from country where name = 'paraguay'),
(select gnp from country where name = 'uruguay')
)
);
--
select continent, sum(population) populacao from country
group by continent
having sum(population) = (
select greatest(
(select sum(population) from country where continent = 'europe'),
(select sum(population) from country where continent = 'south america'),
(select sum(population) from country where continent = 'africa')
)
);
-- retorne a densidade demográfica dos países, formatada em duas casas decimais
select name, concat (format(population/surfacearea,2), 'habitantes por km') Densidade from country;
-- retorne a expectativa de vida elevado ao quadrado
select round(pow(lifeexpectancy,2),2) from country;
-- converta as datas de independencia para binario
select name, bin(indepyear) from country where indepyear is not null;
-- exiba o comprimento dos nomes dos paises
select name, length (name) from country;
-- exiba o nome da cidade de nome mais extenso
select name from country where length(name) = (select max(length(name)) from country);
-- substitua nos nomes das cidades todas as letras 'a' para '@'
select name, replace(name, 'a', '@') from country;
-- inverta os nomes dos chefes de estado dos paises sulamericanos
select headofstate, lower(reverse(headofstate)) from country;
-- retorne o nome, a população e a data de independencia entres aspas simples dos paises da asia
select name, population, quote(indepyear) from country where continent = 'asia';
-- retire todos os espaços em branco dos nomes dos paises
select name, replace(name, ' ', '') from country;
--- determine qual dos 3 paises possui o maior GNP: (peru, paraguai, uruguai)
select name, gnp from country where GNP = (
select greatest(
(select GNP from country where name = 'PERU'),
(select GNP from country where name = 'PARAGUAY'),
(select GNP from country where name = 'URUGUAY')
)
);
--- determine qual continente possui a maior populacao: (europa, america do sul, africa)
select continent, sum(population) populacao from country
group by continent
having sum(population) = (
select greatest(
(select sum(population) from country where continent = 'europe'),
(select sum(population) from country where continent = 'south america'),
(select sum(population) from country where continent = 'africa')
)
);
select * from country c;
-- soma toda a populaçao de todos os paises--
select sum(population) from country;
-- soma a populaçao de cada continente separadamente--
select continent sum(population) from country group by continent;
-- exibe a media populacional de cada pais de uma regiao
select continent, region, avg(population) from country group by region;
-- media de vida de cada continente--
select continent, avg(lifeExpectancy) from country group by continent;
-- conta as formas de governo de cada regiao --
select continent, region, count(govermentForm) from country group by region;
-- exibe a media de independencia de cada um dos continentes --
select continent, format (avg(indepYear),2) media from country group by continent
order by media desc;
-- exibe o total de area de cada continente --
select continent, sum(surfaceArea) from country group by continent;
-- exibe o total de area de cada regiao --
select continent, region, sum(surfaceArea) from country group by region order by
continent;
-- exibe o produto interno bruto (GNPse) de cada continente --
select format (sum(gnp),2), continent from country group by continent;
-- exibe as formas de governo de cada continente --
select governmentForm, continent from country group by governmentForm;
-- exibe as regioes de cada continente --
select continent, region from country group by region;
-- mostra a quantidade de paises por continente --
select continent, count(name) from country group by continent
having count(name) > 40 order by coount(name);
-- quantos paises sao idependentes por continente --
select continent, count(indepYear) from country group by continent;
-- quantos paises de cada continente não sao independentes --
select continent, count(indepYear) from country group by
-- exibe o nome dos continentes com gnp maior que 1000000 --
select continenet from country group by continent having (gnp) > 1000000;
-- exibe as regioes com media de vida superior a 75 anos --
-- exibe as regioes com area igual ou inferior a 50000 --
-- exibe os continentes com a populaçao inferior a 12000000 --
-- conta quantos meses de cada continente sao republicanos --
SUBCONSULTAS
Uma condição estabelecida em uma consulta SQL pode depender do resultado de uma outra consulta
select name,population from country where population = (select max(population) from country); -> retorna o nome do país mais populoso
apelido(alias) de coluna e tabela-> especifica um apelido para uma coluna ou tabela
alias de tabela
select c.name,ct.name from country c, city.ct where c.code = ct.countryCode;
alias de coluna
select sum(surfacearea) area_total from country group by continent;
-- seleciona a data atual no formato AAAA-MM-DD
select curdate();
-- retorna a hora atual no formato HH:MM:SS
select curtime();
-- Extrai somente a parte da data de um datetime
select date('2010-12-19 22:50:32');
-- retorna o numero de dias entre a data inicial e a data final
SELECT DATEDIFF(curdate(), '1997-12-31 23:59:59');
-- retorna uma data adicionada a um intervalo especifico
SELECT DATE_ADD('1997-12-31 23:59:59', INTERVAL 1 SECOND);
SELECT DATE_ADD(CURDATE(), INTERVAL 7 DAY);
SELECT DATE_ADD(CURDATE(), INTERVAL 7 month);
-- retorna o dia da semana por extenso
select dayname(curdate());
-- retorna o dia do mes de uma data
select dayofmonth(curdate());
-- retorna o numero do dia da semana de uma data
-- 1 = domingo, 7 = sabado
select dayofweek(curdate());
-- retorna o dia do ano de uma data
select dayofyear(curdate());
-- retorna a hora de um horario
select hour(sysdate());
-- retorna o ultimo dia do mes da data fornecida(bissexto)
select last_day(curdate());
select last_day('2008-2-1');
select last_day('2010-2-1');
-- retorna o nome do mes por extenso
select monthname(curdate());
select monthname('1997-12-31');
-- seleciona a hora de um datetime
select time(sysdate());
-- retorna a diferenca de horas
select timediff(time(sysdate()),'08:00:00');
-- retorna o numero de dias até a data especificada
select to_days('1910-09-1');
-- retorna o numero da semana de uma data
select week(sysdate());
select week('1996-12-31');
-- retorna o ano de uma data
select year(sysdate());