📜  oracle primeiro dia do mes anterior (1)

📅  最后修改于: 2023-12-03 15:18:08.646000             🧑  作者: Mango

Oracle - Primeiro Dia do Mês Anterior

À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.

Solução

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:

  1. A função ADD_MONTHS subtrai 1 da data atual do sistema (SYSDATE) para obter a data do mês anterior.
  2. A função TRUNC extrai o primeiro dia do mês dessa data do mês anterior.
Exemplo Prático

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.

Conclusão

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.