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.