Função MySQL LAST_DAY()

Exemplo de função MySQL LAST_DAY

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 DATEou DATETIMEe 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 DATEou válido DATETIME.

A LAST_DAY()função retorna NULLse 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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *