Oracle
 sql >> Datenbank >  >> RDS >> Oracle

2 Möglichkeiten, den Tag von einem Datum in Oracle zu erhalten

Unten sind zwei Funktionen, die verwendet werden können, um den Tag von einem Datum in der Oracle-Datenbank zurückzugeben.

Der EXTRACT() Funktion

Der EXTRACT(datetime) Die Funktion wird zum Extrahieren verschiedener datetime-Teile aus einem datetime-Wert verwendet. Dies schließt den Tag ein.

Hier ist ein Beispiel:

SELECT EXTRACT(DAY FROM DATE '2037-10-25')
FROM DUAL;

Ergebnis:

25

Es ist der DAY Schlüsselwort, das den Tagesteil aus dem Datum extrahiert. Wir können andere Datumsteile erhalten, indem wir sie in das relevante Schlüsselwort ändern. Beispiel:YEAR , MONTH , HOUR , MINUTE usw.

Wir können die Funktion auch mit anderen datetime-Werten wie TIMESTAMP verwenden usw.

Der TO_CHAR(datetime) Funktion

Wir können auch den TO_CHAR(datetime) verwenden Funktion als alternative Methode, um den Tag aus einem Datum zu erhalten.

Diese Funktion akzeptiert den datetime- oder Intervallwert als erstes Argument und ein Formatmodell als zweites Argument. Die Funktion konvertiert dann den Wert in einen Datentyp von VARCHAR2 im angegebenen Format.

Das Formatmodell gibt das Format an, für das der datetime/interval-Wert zurückgegeben werden soll. Das Formatmodell besteht aus einem oder mehreren -Formatelementen. Dies ermöglicht es uns, die Ergebnisse sorgfältig so zu gestalten, dass sie unser gewünschtes Format widerspiegeln.

Wenn wir nur den Tag zurückgeben möchten, können wir eines der Formatelemente zum Extrahieren des Tages verwenden.

Tag des Monats

Um den Tag des Monats (zwischen 1-31) zu erhalten, verwenden Sie den DD Formatelement:

SELECT TO_CHAR(DATE '2037-10-03', 'DD')
FROM DUAL;

Ergebnis:

03

Vollständiger Tagesname

Um den vollständigen Tagesnamen zu erhalten, verwenden Sie DAY :

SELECT TO_CHAR(DATE '2037-10-03', 'DAY')
FROM DUAL;

Ergebnis:

SATURDAY

Kurzer Tagesname

Um den abgekürzten Tagesnamen zu erhalten, verwenden Sie DY :

SELECT TO_CHAR(DATE '2037-10-03', 'DY')
FROM DUAL;

Ergebnis:

SAT

Tag des Jahres

Um den Tag des Jahres (zwischen 1-366) zu erhalten, verwenden Sie den DDD Formatelement:

SELECT TO_CHAR(DATE '2037-10-03', 'DDD')
FROM DUAL;

Ergebnis:

276

Wochentag

Um den Wochentag (zwischen 1-7) zu erhalten, verwenden Sie den D Formatelement:

SELECT TO_CHAR(DATE '2037-10-03', 'D')
FROM DUAL;

Ergebnis:

6

Dieses Formatelement hängt vom NLS-Territorium der Sitzung ab. Der Wert von dem NLS_TERRITORY meines Systems Parameter ist AUSTRALIA , und daher gilt der Samstag als sechster Wochentag.

Folgendes passiert, wenn ich den Wert meines NLS_TERRITORY ändere Parameter auf AMERICA und dieselbe Abfrage erneut ausführen:

ALTER SESSION SET NLS_TERRITORY = 'AMERICA';
SELECT TO_CHAR(DATE '2037-10-03', 'D')
FROM DUAL;

Ergebnis:

7

Diesmal gilt der Samstag als der siebte Tag der Woche.