📅  最后修改于: 2023-12-03 15:18:08.646000             🧑  作者: Mango
Às vezes precisamos obter o primeiro dia do mês anterior em nossas consultas ou em nossos procedimentos armazenados. Neste guia, explicarei como podemos fazer isso usando SQL no Oracle.
Podemos obter o primeiro dia do mês anterior usando a função ADD_MONTHS
e a função TRUNC
. A função ADD_MONTHS
adiciona ou subtrai um número especificado de meses a uma data, enquanto a função TRUNC
retorna a data truncada para um determinado nível.
Aqui está o código:
SELECT TRUNC(ADD_MONTHS(SYSDATE, -1), 'MONTH') as primeiro_dia_do_mes_anterior FROM dual;
Este código retornará o primeiro dia do mês anterior em relação à data atual do sistema (SYSDATE
).
Aqui está uma explicação do código acima:
ADD_MONTHS
subtrai 1 da data atual do sistema (SYSDATE
) para obter a data do mês anterior.TRUNC
extrai o primeiro dia do mês dessa data do mês anterior.Suponha que temos a tabela vendas
com as seguintes colunas: id
, data_venda
e valor
. Queremos obter o valor total das vendas do mês anterior. Podemos usar o código abaixo para fazer isso:
SELECT SUM(valor) as total_vendas_mes_anterior
FROM vendas
WHERE data_venda >= TRUNC(ADD_MONTHS(SYSDATE, -1), 'MONTH')
AND data_venda < TRUNC(SYSDATE, 'MONTH');
Neste código, a cláusula WHERE
filtra as vendas que ocorreram no mês anterior, excluindo as vendas realizadas no mês atual ou posterior.
Usando a função ADD_MONTHS
e a função TRUNC
, podemos obter o primeiro dia do mês anterior em SQL no Oracle. Isso pode ser útil para várias consultas e procedimentos armazenados em que é necessário filtrar dados do mês anterior.