Trabalhando com Datas e Horas e cálculos com SQL

Para as pessoas que tinham a curiosidade de saber como trabalhar com Datas, Horas, Cálculos utilizando o SQL aí vai uns exemplos rápidos e práticos para uso dessa prática:

# Funções Agredadas
SELECT CEIL(1.2)  #arredonda p/ cima
SELECT FLOOR(1.9) #arredonda p/ baixo
SELECT ROUND(1.5) #arred dependendo
                  #da cada decimal
                  # < 4 pra baixo
		  # 5 ou > pra cima
SELECT RAND()  # gera numero aleatório
	       # entre 0 e 1
# para conseguir numeros inteiros
# multiplique e combine com arredondamento
SELECT CEIL( RAND() * 10 )
# select floor(preco)
#retorna o maior valor
SELECT MAX(preco) FROM produto
#retorna o menor valor
SELECT MIN(preco) FROM produto
#retorna a média aritmética
SELECT AVG(preco) FROM produto
#ex. a média de preço das camisetas
SELECT AVG(preco) FROM produto
WHERE descricao LIKE "%camiseta%"
#retorna a soma dos valores
SELECT SUM(estoque) FROM produto
#retorna a qtd de REGISTROS p/ a condição
SELECT COUNT(*) FROM produto
WHERE descricao LIKE "%camisa%"
#quantos tipos de produtos custam até 50
SELECT COUNT(*) FROM produto
WHERE preco <= 50
#data do dia
SELECT CURDATE()  #data corrente (atual)
#hora atual
SELECT CURTIME()
#pegar apenas o ano de uma data
SELECT YEAR(CURDATE())
SELECT YEAR('1980-08-02')
#select year(data_nascimento)    #coluna
# month()   day()
#retorna o nome do dia para a data inform
SELECT DAYNAME('1980-08-02')
#quantos dias se passaram entre as datas
SELECT DATEDIFF('2013-02-10','2013-01-01')
#quanto tempo (h-m-s) se passou entre as horas
SELECT TIMEDIFF("21:30:00", "18:00:00")
#### SUBCONSULTAS #####
# 1. Todos os dados do produto mais caro
SELECT * FROM produto
WHERE preco = (
	SELECT MAX(preco) FROM produto
	)
# 2. A descrição e preço do produto
# com menor estoque disponível
SELECT descricao, preco FROM produto
WHERE estoque = (
	SELECT MIN(estoque) FROM produto
	)
# 3. nome dos produtos com preço acima
# da média de preços
SELECT descricao, preco FROM produto
WHERE preco > (
	SELECT AVG(preco) FROM produto
	)
ORDER BY preco DESC
### CONSULTA EM MÚLTIPLAS TABELAS ###
# banco LIVRARIA2
# 1. O titulo e o gênero de cada livro
SELECT titulo, descricao
FROM livro, genero
WHERE livro.idgenero = genero.idgenero
# 2. o nome do autor de cada livro
SELECT titulo, nome
FROM livro, autor, escreve
WHERE livro.idlivro = escreve.idlivro
AND   escreve.idautor = autor.idautor
#AND nome like "J.K%"
#AND preco > 30
# 3. qual autor escreve livros de aventura
SELECT DISTINCT nome
FROM genero, livro, escreve, autor
WHERE genero.idgenero = livro.idgenero
AND   livro.idlivro = escreve.idlivro
AND   escreve.idautor = autor.idautor
AND   descricao LIKE "aventura";
# distinct elimina duplicação nos results