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.