No artigo anterior , apresentamos como usar o SQL para obter o primeiro dia do mês. Este artigo falará sobre como obter o último dia do mês. Os bancos de dados envolvidos incluem Oracle, MySQL, Microsoft SQL Server, PostgreSQL e SQLite .
Oráculo
O banco de dados Oracle fornece a função LAST_DAY() , que pode obter o último dia do mês em que a data especificada está localizada:
SELECT SYSDATE,
LAST_DAY(SYSDATE) "Last",
LAST_DAY(SYSDATE) - SYSDATE "Days Left"
FROM DUAL;
SYSDATE Last Days Left
--------- --------- ----------
20-MAY-23 31-MAY-23 11
O último dia do mês é determinado pelo parâmetro de sessão NLS_CALENDAR.
MySQL
O MySQL fornece a função LAST_DAY() , que retorna o último dia do mês especificado:
SELECT LAST_DAY(current_date());
LAST_DAY(current_date())|
------------------------+
2023-05-31|
O MariaDB também fornece a mesma função LAST_DAY().
Servidor Microsoft SQL
O Microsoft SQL Server fornece a função EOMONTH() , que retorna o último dia do mês que contém a data especificada:
SELECT EOMONTH( '2023-01-01' );
2023-01-31
A função EOMONTH() inclui um parâmetro opcional para aumentar ou diminuir um número especificado de meses:
SELECT EOMONTH( '2023-01-01', 4 );
2023-05-31
PostgreSQLName
O PostgreSQL não fornece uma função que possa ser usada diretamente para obter o último dia do mês e operações adicionais são necessárias para obter o mesmo efeito:
SELECT (date_trunc('month', date '2023-05-20') + interval '1 month - 1 day')::date;
date |
----------+
2023-05-31|
Dentre elas, a função DATE_TRUNC() é utilizada para truncar a data. O que funciona no exemplo é truncar a data para o primeiro dia do mês. Em seguida, obtemos o último dia do mês adicionando um intervalo.
SQLite
O SQLite fornece a função DATE(), que pode ser usada para obter o último dia do mês:
SELECT DATE('2023-05-20', 'start of month', '+1 month', '-1 day');
2023-05-31
O processo de processamento da função no exemplo é semelhante ao PostgreSQL. O parâmetro 'início do mês' significa obter o primeiro dia do mês, depois '+1 mês' obtém o próximo mês e, finalmente, '-1 dia' menos um dia retorna a data original. O último dia do mês.