BD-1st-2.4-lab7.tresc-1.1-Slajd8
Typy danych – daty i czas
Typ DATE pozwala na definiowanie atrybutów przechowujących daty. Poprawną datą jest tutaj dowolna data z kalendarza gregoriańskiego pomiędzy 01 stycznia 1 roku a 31 grudnia 9999. W SZBD Oracle typ DATE pozwala również na przechowywanie czasu w postaci wartości ułamkowych (1=dzień, 0,5=12 godzin itp.).
Typ TIME pozwala przechowywać informacje o czasie dnia z dokładnością do ułamkowych części sekundy. Parametr określa liczbę pozycji dziesiętnych rozwinięcia dziesiętnego ułamków sekundy. Musi istnieć możliwość podania tutaj przynajmniej wartości 6. Parametr (n) jest opcjonalny, a jego domyślna wartość wynosi 0.
Typ TIMESTAMP reprezentuje połączenie możliwości typów DATE i TIME i pozwala na składowanie zarówno dat, jak i czasu. Podobnie jak typy DATE i TIME pozwala na przechowywanie w atrybutach dat z kalendarza gregoriańskiego pomiędzy 01 stycznia 1 roku a 31 grudnia 9999 oraz czasu z dokładnością do ułamkowych części sekundy. Parametr (n) ma identyczne znaczenie jak w typie TIME i również jest opcjonalny.
Typ INTERVAL reprezentuje okres czasu. Okres czasu definiowany jest za pomocą pewnej liczby różnych „jednostek” takich jak: lata, miesiące, dnie, godziny itp. Na nazwę typu składa się słowo kluczowe INTERVAL i specyfikacja przechowywanych wielkości. Specyfikacja ma postać:
najdłuższy_okres [TO najkrótszy okres]
gdzie: najdłuższy_okres może przyjmować następujące wartości:
YEAR(n), MONTH(n), DAY(n), HOUR(n), MINUTE(n), SECOND(n,f) (n to liczba cyfr liczby danych jednostek czasu, jaka może być składowana, a f to liczba cyfr rozwinięcia dziesiętnego ułamka sekundy),
A najkrótszy_okres może przyjmować wartości:
MONTH, DAY, HOUR, MINUTE, SECOND(f).
Podając opcjonalny najkrótszy okres należy pamiętać o tym, że musi on być krótszy od najdłuższego okresu. Przykładowo, poprawnym typem jest INTERVAL YEAR TO MONTH, ale nie jest nim INTERVAL MONTH TO YEAR. Nie jest również możliwe łączenie w jednej specyfikacji roku (YEAR) i miesiąca (MONTH) z pozostałymi okresami. Tym samym, lista poprawnych typów wygląda następująco:
- INTERVAL YEAR – pozwala na przechowywanie pewnej liczby lat.
- INTERVAL MONTH – pozwala na przechowywanie pewnej liczby miesięcy.
- INTERVAL YEAR TO MONTH – pozwala na przechowywanie pewnej liczby lat i miesięcy.
- INTERVAL DAY – pozwala na przechowywanie pewnej liczby dni.
- INTERVAL HOUR – pozwala na przechowywanie pewnej liczby godzin.
- INTERVAL MINUTE – pozwala na przechowywanie pewnej liczby minut.
- INTERVAL SECOND – pozwala na przechowywanie pewnej liczby sekund.
- INTERVAL DAY TO HOUR – pozwala na przechowywanie pewnej liczby dni i godzin.
- INTERVAL DAY TO MINUTE – pozwala na przechowywanie pewnej liczby dni, godzin i minut.
- INTERVAL DAY TO SECOND – pozwala na przechowywanie pewnej liczby dni, godzin, minut i sekund.
- INTERVAL HOUR TO MINUTE – pozwala na przechowywanie pewnej liczby godzin i minut.
- INTERVAL HOUR TO SECOND – pozwala na przechowywanie pewnej liczby godzin, minut i sekund.
- INTERVAL MINUTE TO SECOND – pozwala na przechowywanie pewnej liczby minut i sekund.
Do powyższych typów, zgodnie z wcześniejszym opisem można również dodać parametry określające dokładność i maksymalną wielkość przechowywanych wartości.
W SZBD Oracle możliwe jest definiowanie relacji z atrybutami jedynie typów: INTERVAL YEAR TO MONTH i INTERVAL DAY TO SECOND. Nie stanowi to jednak dużego problemu, gdyż są to typy najbardziej ogólne.