TO_CHAR formatowanie/parametry daty w Oracle SQL
Funkcja TO_CHAR służy do konwersji daty bądź liczby do postaci ciągu tekstowego (string).
Wywołanie funkcji wygląda następująco:
SELECT TO_CHAR('data/czas', 'format') FROM NAZWA_TABELI;
W poniższych przykładach posłużymy się wynikiem funkcji CURRENT_TIMESTAMP, która zwraca aktualną datę oraz czas, np:
SELECT CURRENT_TIMESTAMP FROM DUAL; -- 2017-01-31 11:11:10
YEAR– zwraca rok słownie, np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'YEAR') FROM DUAL; -- TWENTY SEVENTEEN
YYYY – zwraca rok w postaci YYYY, np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'YYYY') FROM DUAL; -- 2017
YYY, YY, Y – zwraca rok w postaci YYY, YY, lub Y, np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'YY') FROM DUAL; -- 17
IYYY – rok wg. standardu ISO, np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'IYYY') FROM DUAL; -- 2017
Q – zwraca numer kwartału, np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'Q') FROM DUAL; -- 1
MM – zwraca numer miesiąca (01..12), np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'MM') FROM DUAL; -- 01
MON – zwraca skróconą nazwę miesiąca, np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'MON') FROM DUAL; -- STY
RM – zwraca rzymską wartość numeru miesiąca (I..XII), np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'RM') FROM DUAL; -- I
WW – zwraca numer tygodnia (1..53), gdzie pierwszy tydzień rozpoczyna się w pierwszym dniu roku i trwa do siódmego dnia roku, np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'WW') FROM DUAL; -- 05
W – zwraca numer tygodnia (1..5), gdzie pierwszy tydzień rozpoczyna się w pierwszym dniu miesiąca i kończy siódmego dnia miesiąca, np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'W') FROM DUAL; -- 5
IW – zwraca numer tygodnia w roku (1..52 lub 1..53) wg. standardu ISO, np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'IW') FROM DUAL; -- 05
D – zwraca numer dnia tygodnia (poniedziałek = 1, niedziela=7), np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'D') FROM DUAL; -- 2
DAY – zwraca nazwę dnia tygodnia, np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'DAY') FROM DUAL; -- WTOREK
DD – zwraca dzień miesiąca (1..31), np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'D') FROM DUAL; -- 31
DDD – zwraca dzień roku (1..366), np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'DDD') FROM DUAL; -- 031
DY – skrócona nazwa dnia tygodnia, np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'DY') FROM DUAL; -- WT
J – zwraca liczbę dni, która upłynęła od 1 stycznia roku 4713 p.n.e. (data juliańska), np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'J') FROM DUAL; -- 2457785
HH – zwraca godzinę dla podanego czasu (01..12), np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'HH') FROM DUAL; -- 31
HH12 – zwraca godzinę dla podanego czasu (01..12), np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'HH12') FROM DUAL; -- 31
HH24 – zwraca godzinę dla podanego czasu (01..24), np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'HH24') FROM DUAL; -- 31
MI – liczba minut dla podanego czasu (00..59), np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'MI') FROM DUAL; -- 31
SS – liczba sekund dla podanego czasu (00..59), np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'SS') FROM DUAL; -- 31
SSSSS – liczba sekund od północy (0-86399), np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'SSSSS') FROM DUAL; -- 40421
FF – zwraca milisekundy, np:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'FF') FROM DUAL; -- 017485