Resumo : neste tutorial você aprenderá como usar a MONTH()
função MySQL para obter o mês de uma determinada data.
Introdução à função MySQL MONTH()
A MONTH
função retorna um número inteiro que representa o mês de uma data especificada. O seguinte ilustra a sintaxe da MONTH
função:
MONTH(date);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A MONTH
função aceita um argumento que é um valor DATE
ou DATETIME
. Retorna um número inteiro que varia de 1 a 12, que representa janeiro a dezembro.
A MONTH()
função retorna NULL
se a data for NULL
. Além disso, retorna zero, se a data for zero ( 0000-00-00
).
Exemplos de funções MySQL MONTH()
Vejamos alguns exemplos de uso da função MONTH()
1) Exemplos simples de funções Month()
O exemplo a seguir usa a MONTH()
função para obter o mês de 2010-01-01
:
SELECT MONTH('2010-01-01');
Linguagem de código: JavaScript ( javascript )
Saída:
+---------------------+
| MONTH('2010-01-01') |
+---------------------+
| 1 |
+---------------------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Para obter o mês atual, você usa a MONTH()
função com a NOW()
função mostrada na instrução a seguir:
SELECT MONTH(NOW()) CURRENT_MONTH;
Saída:
+---------------+
| CURRENT_MONTH |
+---------------+
| 10 |
+---------------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Como funciona.
- Primeiro, use a
NOW()
função para obter a data e hora atuais. - Segundo, passe a data e hora atuais para a
MONTH()
função para obter o mês atual.
O seguinte mostra como usar a MONTH
function() com data zero:
SELECT MONTH('0000-00-00');
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Ele retorna 0:
+---------------------+
| MONTH('0000-00-00') |
+---------------------+
| 0 |
+---------------------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O exemplo a seguir usa MONTH
função com NULL
data:
SELECT MONTH(NULL);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+-------------+
| MONTH(NULL) |
+-------------+
| NULL |
+-------------+
1 row in set (0.00 sec)
Linguagem de código: texto simples ( texto simples )
2) Usando a função MONTH() com dados da tabela
Usaremos as tabelas orders
e orderdetails
no banco de dados de exemplo :
O demonstrativo a seguir demonstra o volume de pedidos por mês em 2004:
SELECT
MONTH(orderDate) month,
ROUND(
SUM(quantityOrdered * priceEach)
) subtotal
FROM
orders
INNER JOIN orderdetails USING (orderNumber)
WHERE
YEAR(orderDate) = 2004
GROUP BY
month;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+-------+----------+
| month | subtotal |
+-------+----------+
| 1 | 292385 |
| 2 | 289503 |
| 3 | 217691 |
| 4 | 187576 |
| 5 | 248325 |
| 6 | 343371 |
| 7 | 325563 |
| 8 | 419327 |
| 9 | 283800 |
| 10 | 500234 |
| 11 | 979292 |
| 12 | 428838 |
+-------+----------+
12 rows in set (0.03 sec)
Linguagem de código: texto simples ( texto simples )
Vamos dividir a declaração em partes menores para facilitar a compreensão:
- A
INNER JOIN
cláusula une duas tabelasorders
eorderdetails
usa aorderNumber
coluna. - A
MONTH
função é aplicada àorderDate
coluna para obter o mês dos pedidos. - A
SUM()
função calcula o subtotal de cada item de linha no pedido de venda - A
WHERE
cláusula inclui apenas os pedidos de 2004. - A
GROUP BY
cláusula agrupa o subtotal por mês.
Resumo
- UYse a
MONTH()
função para obter o mês de uma data específica.