Azaz a hét melyik napja van.
Láttam erre egy igen faramuci megoldást, ami a
TO_CHAR(date, 'D')
függvényt használta. Ez ugye azt mondja meg, hogy hanyadik nap ez a dátum az adott héten. Csakhogy az NLS beállítástól függően ez több értéket is mutathat egy adott napra. Hát a kedves kollega kiválasztott egy dátumot, amiről tudta, hogy biztosan péntek. 4-5 évre előre az időben - hogy miért, ne kérdezzétek. Ebből kivonta az ötöt, így képzett egy offset értéket, amit kivonva a függvény értékéből megkapta a függvény magyar nyelvterületen megszokott értékét. Nem szép, de működik. Trükkösebb felhasználók azt mondják erre. Node a hét napját ugyanúgy hívják attól függetlenül, hogy milyen nyelvterületen vagyunk. A Friday az friday, ebből könnyedén ki tudunk indulni.
Nos nem. Ha az NLS-ünk magyarra van álltva, akkor a
TO_CHAR(date, 'DAY')
függvény értéke, el nem ítélhető módon ez lesz egy pénteki napra:
péntek
De kétségbeesésre nincs ok! Szerencsére nem kell ALTER SESSION utasításokkal varázsolnunk. A TO_CHAR függvénynek ugyanis van egy harmadik parametere, amiben az nls-t állíthatjuk, az nls paraméter nevének és értékének megadásával. Ha tehát a
TO_CHAR(date, 'DAY', 'NLS_DATE_LANGUAGE=American')
függvényt használjuk, az már tetszőleges NLS beállítás mellett a várt
friday
értéke fogja visszaadni.