Poniżej znajdują się dwie funkcje, których można użyć do zwrócenia dnia od daty w bazie danych Oracle.
EXTRACT() Funkcja
EXTRACT(datetime) Funkcja służy do wyodrębniania różnych części daty i godziny z wartości daty i godziny. Obejmuje to dzień.
Oto przykład:
SELECT EXTRACT(DAY FROM DATE '2037-10-25')
FROM DUAL; Wynik:
25
Jest DAY słowo kluczowe, które wyodrębnia część dnia z daty. Możemy uzyskać inne części daty, zmieniając je na odpowiednie słowo kluczowe. Na przykład YEAR , MONTH , HOUR , MINUTE itp.
Możemy również użyć funkcji z innymi wartościami datetime, takimi jak TIMESTAMP itp.
TO_CHAR(datetime) Funkcja
Możemy również użyć TO_CHAR(datetime) funkcjonować jako alternatywna metoda, aby uzyskać dzień od daty.
Ta funkcja akceptuje wartość daty i godziny lub przedziału jako swój pierwszy argument, a model formatu jako drugi argument. Funkcja następnie konwertuje wartość na typ danych VARCHAR2 w określonym formacie.
Model formatu określa format, dla którego ma zostać zwrócona wartość daty/godziny/interwału. Model formatu składa się z jednego lub więcej elementów formatu . Dzięki temu możemy starannie opracować wyniki, aby odzwierciedlić nasz pożądany format.
Jeśli chcemy tylko zwrócić dzień, możemy użyć jednego z elementów formatu do wyodrębnienia dnia.
Dzień miesiąca
Aby uzyskać dzień miesiąca (od 1-31), użyj DD element formatu:
SELECT TO_CHAR(DATE '2037-10-03', 'DD')
FROM DUAL; Wynik:
03
Pełna nazwa dnia
Aby uzyskać pełną nazwę dnia, użyj DAY :
SELECT TO_CHAR(DATE '2037-10-03', 'DAY')
FROM DUAL; Wynik:
SATURDAY
Krótka nazwa dnia
Aby uzyskać skróconą nazwę dnia, użyj DY :
SELECT TO_CHAR(DATE '2037-10-03', 'DY')
FROM DUAL; Wynik:
SAT
Dzień roku
Aby uzyskać dzień roku (od 1-366), użyj DDD element formatu:
SELECT TO_CHAR(DATE '2037-10-03', 'DDD')
FROM DUAL; Wynik:
276
Dzień tygodnia
Aby uzyskać dzień tygodnia (od 1 do 7), użyj D element formatu:
SELECT TO_CHAR(DATE '2037-10-03', 'D')
FROM DUAL; Wynik:
6
Ten element formatu zależy od terytorium NLS sesji. Wartość NLS_TERRITORY mojego systemu parametr to AUSTRALIA , dlatego sobota jest szóstym dniem tygodnia.
Oto, co się stanie, jeśli zmienię wartość mojego NLS_TERRITORY parametr do AMERICA i ponownie uruchom to samo zapytanie:
ALTER SESSION SET NLS_TERRITORY = 'AMERICA';
SELECT TO_CHAR(DATE '2037-10-03', 'D')
FROM DUAL; Wynik:
7
Tym razem sobota jest siódmym dniem tygodnia.