[ Pobierz całość w formacie PDF ]
Kolumna nie jest jawnie określona w instrukcji lub .
Kolumna nie jest jawnie określona w instrukcji , a w jakiejś innej
kolumnie zmieniana jest wartość. Jeżeli aktualizacja przypisze kolumnie
wartość, którą ta już zawiera, kolumna nie będzie aktualizowana.
Jeśli kolumnie zostanie przypisana jej bieżąca wartość, aktualizacja zostanie
przez MySQL zignorowana z powodów wydajnościowych.
Bieżącą datę i godzinę można przypisywać nie tylko pierwszej kolumnie .
Aby wpisać je do innych kolumn tego typu, wystarczy przypisać kolumnie wartość
lub .
Dowolnej kolumnie można jawnie przypisać wartość inną niż bieżąca data
i czas. Dotyczy to nawet pierwszej kolumny . Jest to przydatne, w sytuacji
gdy na przykład chcemy przypisać bieżącą datę i czasy w momencie tworze-
nia rekordu, ale tak, by informacja ta nie była już pózniej zmieniana:
Należy podczas tworzenia rekordu zezwolić MySQL na przypisanie kolumnie
wartości. To spowoduje zainicjowanie jej z bieżącą datą i czasem.
Po wykonaniu kolejnych aktualizacji innych kolumn w rekordzie, należy
przypisać kolumnie w sposób jawny bieżącą wartość znacznika czasu:
Innym sposobem utworzenia kolumny, w której rejestrowany będzie czas utworzenia
rekordu, jest przygotowanie kolumny , inicjalizowanej za pomocą funkcji
w momencie tworzenia wiersza, po czym, przy kolejnych aktualizacjach, pozostawia-
nie jej bez zmian.
Zakres obejmowany przez wartości rozpoczyna się od roku 1970 i sięga do
roku 2037 z dokładnością co do jednej sekundy. Wartości wyświetlane są jako liczby.
Format, w którym przez MySQL pobierane są i wyświetlane wartości , zależy
od maksymalnej wyświetlanej liczby cyfr zostało to przedstawione w poniższym
zestawieniu. Pełny format typu liczy 14 cyfr, ale takie kolumny można także
tworzyć z mniejszym rozmiarem wyświetlania:
4.3. Typy związane z datą i czasem 141
Specyfikacja typ Format wyświetlania
Rozmiar przechowywanych wartości wszystkich kolumn jest ten sam bez
względu na liczbę wyświetlanych cyfr. Najbardziej popularnymi rozmiarami wyświetlania
są 6, 8, 12 i 14. Podczas tworzenia tabeli istnieje także możliwość określenia dowolnej
maksymalnej liczby wyświetlanych cyfr, ale w przypadku wartości 0 lub wartości prze-
kraczającej 14 kolumna zostanie potraktowana jako . Nieparzyste warto-
ści w zakresie od 1 do 13 traktowane są jako wyższa o jeden liczba parzysta.
Kolumny przechowują poprawne wartości z zastosowaniem pełnej dokład-
ności, z którą wartość została zadeklarowana, bez względu na rozmiar wyświetlania.
Prowadzi to do kilku następstw:
Należy zawsze deklarować rok, miesiąc i dzień, nawet gdy kolumna jest typu
lub . W przeciwnym razie wartość nie będzie
poprawną datą i przechowane zostanie 0.
Użycie instrukcji do poszerzenia zbyt wąskiej kolumny
spowoduje wyświetlenie poprzednio ukrytych informacji.
Podobnie, zwężenie kolumny nie spowoduje utraty informacji.
Po prostu mniej informacji będzie wyświetlanych.
Mimo że wartości są przechowywane z pełną dokładnością, jedyną
funkcją, której działanie bezpośrednio dotyczy faktycznie przechowywanych
wartości, jest . Inne funkcje operują na sformatowanych
wartościach odczytanych. Oznacza to, że takich funkcji, jak lub
można używać tylko wtedy, gdy sformatowana wartość znacznika zawiera
stosowną część wartości . Część kolumny nie jest na
przykład wyświetlana, jeśli rozmiar wyświetlania nie przekracza 10. Z tego
powodu próba użycia funkcji na wartościach o skróconym
formacie wyświetlania zwraca niezrozumiały wynik.
4.3.1.2. Właściwości TIMESTAMP począwszy od wersji 4.1 MySQL
Od wersji 4.1.0 właściwości różnią się od tych z wcześniejszych wersji
MySQL.
Kolumny są wyświetlane w tym samym formacie, w którym
wyświetlane są kolumny .
Szerokości wyświetlania nie są obsługiwane w sposób opisany w poprzednim
podpunkcie. Innymi słowy, nie można używać takich deklaracji, jak
czy .
142 Rozdział 4. f& Typy kol mn
Dodatkowo, jeśli serwer MySQL pracuje w trybie , typ jest identycz-
ny z typem . Jeśli serwer działa w trybie w momencie tworzenia tabeli,
wszystkie kolumny zostają utworzone jako kolumny . W rezultacie
stosowany jest dla nich format wyświetlania , ten sam zakres wartości, a ich
aktualizacja nie jest wykonywana automatycznie.
MySQL można uruchamiać w trybie od wersji 4.1.1. Aby tego dokonać, należy
uruchomić serwer SQL z opcją lub podczas pracy serwera zmody-
fikować zmienną globalną :
T L L
Aby serwer działał w trybie dla połączenia danego klienta, wystarczy skorzystać
z instrukcji:
T
4.3.2. Typ TIME
Wartości pobierane są i wyświetlane przez MySQL w formacie (lub
dla godzin o większych wartościach). Wartości należą do zakresu od
do . Element reprezentujący godzinę może przybierać tak
duże wartości, ponieważ typ może służyć nie tylko do reprezentowania godzin
w ciągu doby (która nie może przekroczyć 24 godzin), ale również upływającego czasu
lub przedziału czasowego między dwoma zdarzeniami (a ten może znacznie przekro-
czyć 24 godziny, a nawet być liczbą ujemną).
Wartości można deklarować w wielu formatach:
Jako łańcuch w formacie . Można także użyć jednego
z nieco prostszych formatów: , , ,
, , lub . Parametr reprezentuje dni i może
przybierać wartość od 0 do 34. Należy zauważyć, że MySQL nie przechowuje
jeszcze części ułamkowej.
Jako łańcuch bez znaków rozdzielających elementy godziny w formacie
przy założeniu, że reprezentowana przez niego godzina istnieje.
należy na przykład odczytać jako , natomiast
jest wartością niepoprawną (część reprezentująca liczbę minut jest
bezsensowna) i zostanie przekształcona na .
Jako liczba w formacie przy założeniu, że reprezentowana przez niego
godzina istnieje, na przykład należy odczytać jako .
Zrozumiałe są także następujące formaty alternatywne: , , ,
. Należy zauważyć, że MySQL nie przechowuje jeszcze
części ułamkowej.
[ Pobierz całość w formacie PDF ]