Resumo : Este tutorial apresenta a LAST_DAY()
função MySQL e mostra como aplicá-la LAST_DAY()
em vários contextos.
Introdução à função MySQL LAST_DAY()
A LAST_DAY()
função recebe um valor DATE
ou DATETIME
e retorna o último dia do mês para a data de entrada:
LAST_DAY(date);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O argumento de data deve ser um valor DATE
ou válido DATETIME
.
A LAST_DAY()
função retorna NULL
se a data for zero ( 0000-00-00
), inválida ou NULL
.
Exemplos de funções MySQL LAST_DAY()
Vejamos alguns exemplos de uso da LAST_DAY()
função.
1) Exemplo simples do MySQL LAST_DAY()
O exemplo a seguir usa a LAST_DAY()
função para retornar o último dia de February 03, 2016
.
SELECT LAST_DAY('2016-02-03');
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Aqui está a saída:
+------------------------+
| LAST_DAY('2016-02-03') |
+------------------------+
| 2016-02-29 |
+------------------------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
2) Usando a função LAST_DAY() para obter o último dia do mês atual
Para obter o último dia do mês atual, combine a LAST_DAY()
função com a função NOW()
ou CURDATE()
da seguinte maneira:
SELECT LAST_DAY(NOW());
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A saída é:
+-----------------+
| LAST_DAY(NOW()) |
+-----------------+
| 2017-07-31 |
+-----------------+
1 row in set (0.00 sec)
Linguagem de código: JavaScript ( javascript )
SELECT LAST_DAY(CURDATE());
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
+---------------------+
| LAST_DAY(CURDATE()) |
+---------------------+
| 2017-07-31 |
+---------------------+
1 row in set (0.00 sec)
Linguagem de código: JavaScript ( javascript )
3) Usando a função LAST_DAY() para obter o último dia do próximo mês
Para obter o último dia do próximo mês, adicione 1 mês à data atual e passe o resultado para a LAST_DAY()
função conforme mostrado na consulta a seguir:
SELECT LAST_DAY(CURDATE() + INTERVAL 1 MONTH);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Aqui está a saída:
+----------------------------------------+
| LAST_DAY(CURDATE() + INTERVAL 1 MONTH) |
+----------------------------------------+
| 2017-08-31 |
+----------------------------------------+
1 row in set (0.00 sec)
Linguagem de código: JavaScript ( javascript )
4) Obtendo o primeiro dia do mês para uma data
O MySQL não possui uma função que retorne o primeiro dia de uma data. No entanto, você pode usar a LAST_DAY()
função para calculá-lo seguindo estas etapas:
- Primeiro, obtenha o último dia do mês de uma data.
- Segundo, adicione 1 dia para obter o primeiro dia do próximo mês usando a
DATE_ADD()
função - Terceiro, subtraia 1 mês para obter o primeiro dia do mês da data.
A consulta a seguir ilustra como obter o primeiro dia do mês de 2017-07-14
.
SELECT
DATE_ADD(DATE_ADD(LAST_DAY('2017-07-14'),
INTERVAL 1 DAY),
INTERVAL - 1 MONTH) AS first_day;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A saída é:
+------------+
| first_day |
+------------+
| 2017-07-01 |
+------------+
1 row in set (0.00 sec)
Linguagem de código: JavaScript ( javascript )
Para torná-lo mais conveniente, você pode desenvolver uma função armazenadaFIRST_DAY()
com o seguinte nome :
DELIMITER $$
CREATE FUNCTION first_day(dt DATETIME) RETURNS date
BEGIN
RETURN DATE_ADD(DATE_ADD(LAST_DAY(dt),
INTERVAL 1 DAY),
INTERVAL - 1 MONTH);
END
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Você pode então chamar a FIRST_DAY()
função conforme mostrado na seguinte consulta:
SELECT FIRST_DAY('2017-02-15');
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Esta é a saída:
+-------------------------+
| FIRST_DAY('2017-02-15') |
+-------------------------+
| 2017-02-01 |
+-------------------------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Resumo
- Use a função MySQL
LAST_DAY()
para obter o último dia de um mês para uma data especificada.