sql >> Database >  >> RDS >> Oracle

Hoe een kwartaal vanaf datum in Oracle te krijgen?

Hieronder geef ik twee voorbeelden om een ​​kwartaal vanaf de datum in Oracle te krijgen met behulp van PL/SQL en SQL-query.

Kwartaal ophalen met de PL/SQL-functie (opgeslagen functie) in Oracle

De volgende functie neemt de datumparameter en retourneert het kwartaal als het getal.

CREATE OR REPLACE FUNCTION get_quarter (p_date IN DATE)
RETURN NUMBER
AS
l_qtr NUMBER;
l_month NUMBER;
BEGIN
l_month := TO_CHAR (p_date, 'mm');

IF l_month IN (1, 2, 3)
THEN
l_qtr := 1;
ELSIF l_month IN (4, 5, 6)
THEN
l_qtr := 2;
ELSIF l_month IN (7, 8, 9)
THEN
l_qtr := 3;
ELSIF l_month IN (10, 11, 12)
THEN
l_qtr := 4;
END IF;

RETURN l_qtr;
END get_quarter;

Test

SELECT get_quarter (SYSDATE) FROM DUAL;

Uitvoer

 QUARTER
----------
3
1 row selected.

Kwartaal ophalen met SQL Query in Oracle

SELECT CASE
WHEN TO_CHAR (SYSDATE, 'mm') IN (1, 2, 3) THEN 1
WHEN TO_CHAR (SYSDATE, 'mm') IN (4, 5, 6) THEN 2
WHEN TO_CHAR (SYSDATE, 'mm') IN (7, 8, 9) THEN 3
WHEN TO_CHAR (SYSDATE, 'mm') IN (10, 11, 12) THEN 4
END
quarter
FROM DUAL;

Uitvoer

QUARTER
----------
3
1 row selected.

To_CHAR-functie gebruiken

Select TO_CHAR(sysdate, 'Q') from dual;

Uitvoer

QUARTER
----------
3
1 row selected.

Zie ook:

  • Oracle-datumfuncties | Lijst met snelle voorbeelden
  • Oracle To_Date-functievoorbeelden
  • Gegevens van vorige maanden ophalen in Oracle
  1. Automatisch antwoordbestand genereren

  2. Een overzicht van tools voor taakplanning voor PostgreSQL

  3. Hoe kunnen beperkingen met externe sleutels tijdelijk worden uitgeschakeld met T-SQL?

  4. Hoe kan ik een String[]-parameter instellen op een native query?