Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Używając Oracle SQL, w jaki sposób jeden dzień wyprowadza numer tygodnia i dzień tygodnia?

Odpowiedź Florina brzmi, jak bym to zrobił, ale musisz być trochę ostrożny z ustawieniami NLS. Na dzień tygodnia ma wpływ terytorium NLS, więc jeśli uruchomię to tak, jakbym był w USA, to działa:

alter session set nls_territory = 'AMERICA';

select to_char(sysdate, 'D') as d, to_char(sysdate, 'Day') as day from dual;

D DAY
- ------------------------------------
6 Friday

select level as dow,
    to_char(trunc(sysdate ,'D') + level, 'Day') as day
from dual
connect by level <= 7;

DOW DAY
--- ------------------------------------
  1 Monday
  2 Tuesday
  3 Wednesday
  4 Thursday
  5 Friday
  6 Saturday
  7 Sunday

Ale to samo zapytanie w Wielkiej Brytanii to dzień wolny:

alter session set nls_territory = 'UNITED KINGDOM';

select to_char(sysdate, 'D') as d, to_char(sysdate, 'Day') as day from dual;

D DAY
- ------------------------------------
5 Friday

select level as dow,
    to_char(trunc(sysdate ,'D') + level, 'Day') as day
from dual
connect by level <= 7;

DOW DAY
--- ------------------------------------
  1 Tuesday
  2 Wednesday
  3 Thursday
  4 Friday
  5 Saturday
  6 Sunday
  7 Monday

... i muszę dostosować obliczenia, aby to było poprawne:

select level as dow,
    to_char(trunc(sysdate ,'D') + level - 1, 'Day') as day
from dual
connect by level <= 7;

DOW DAY
--- ------------------------------------
  1 Monday
  2 Tuesday
  3 Wednesday
  4 Thursday
  5 Friday
  6 Saturday
  7 Sunday

Możesz również osobno określić język używany do nazw dni, jeśli chcesz:

select level as dow,
    to_char(trunc(sysdate ,'day') + level - 1, 'Day',
        'NLS_DATE_LANGUAGE=FRENCH') as day
from dual
connect by level <= 7;

DOW DAY
--- --------------------------------
  1 Lundi
  2 Mardi
  3 Mercredi
  4 Jeudi
  5 Vendredi
  6 Samedi
  7 Dimanche

Dokumentacja dla to_char() z nls_date_language i dzień tygodnia, i więcej w przewodniku wsparcia globalizacji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy ktoś wie, jakiej techniki szyfrowania używa JDeveloper/SQL Developer do utrwalania poświadczeń?

  2. Jak sprawdzić, czy wartość DataReader nie jest pusta?

  3. Jak wysłać dowolne parametry do wyzwalacza Oracle?

  4. Jak zmienić tabelę w Oracle

  5. Zrzucanie bloków danych