Podsumowanie: w tym samouczku dowiesz się, jak używać SQL Server DATETIME2 do przechowywania danych daty i czasu w tabeli.
Wprowadzenie do SQL Server DATETIME2
aby przechowywać zarówno datę, jak i godzinę w bazie danych, należy użyć typu danych SQL Server DATETIME2.
składnia DATETIME2 wygląda następująco:
Code language: SQL (Structured Query Language) (sql)
dokładność sekund ułamkowych jest opcjonalna. Waha się od 0 do 7.
poniższe polecenie ilustruje, jak utworzyć tabelę składającą się z kolumny DATETIME2 :
Code language: SQL (Structured Query Language) (sql)
DATETIME2 ma dwa składniki: datę i godzinę.
- Data ma zakres od stycznia 01, 01 (0001-01-01) do grudnia 31, 9999 (9999-12-31)
- czas ma zakres od 00: 00:00 do 23:59: 59.9999999.
rozmiar pamięci o wartości DATETIME2 zależy od ułamkowej dokładności sekund. Wymaga 6 bajtów dla dokładności, która jest mniejsza niż 3, 7 bajtów dla dokładności, która jest między 3 i 4, i 8 bajtów dla wszystkich innych dokładności.
domyślny format litery DATETIME2 jest następujący:
Code language: SQL (Structured Query Language) (sql)
w tym formacie:
-
YYYYjest czterocyfrową liczbą oznaczającą rok np. 2018. Waha się od 0001 do 9999. -
MMto dwucyfrowa liczba oznaczająca miesiąc w roku np. 12. Waha się od 01 do 12. -
DDto dwucyfrowa liczba, która reprezentuje dzień określonego miesiąca, np. 23. Waha się od 01 do 31. -
hhto dwucyfrowa liczba reprezentująca godzinę. Waha się od 00 do 23. -
mmto dwucyfrowa liczba reprezentująca minutę. Waha się od 00 do 59. -
ssto dwucyfrowa liczba, która reprezentuje drugą. Waha się od 00 do 59. - ułamkowe sekundy to zero do siedmiocyfrowej liczby, która waha się od 0 do 9999999.
przykład SQL Server DATETIME2
poniższe polecenie tworzy nową tabelę, która ma kolumnę created_at, której typ danych to DATETIME2:
Code language: SQL (Structured Query Language) (sql)
aby wstawić bieżącą datę i czas do kolumny created_at, użyj następującego polecenia INSERT z funkcją GETDATE() :
Code language: SQL (Structured Query Language) (sql)
funkcja GETDATE () jest podobna do funkcji NOW() w innych systemach baz danych, takich jak MySQL
aby wstawić literalną wartość do kolumny DATETIME2, użyj następującego polecenia:
Code language: SQL (Structured Query Language) (sql)
jeśli chcesz ustawić domyślną wartość kolumny created_at na bieżącą datę i godzinę, użyj następującego polecenia ALTER TABLE :
Code language: SQL (Structured Query Language) (sql)
w tej instrukcji używamy CURRENT_TIMESTAMP jako domyślnej wartości dla kolumny created_at. Zauważ, że CURRENT_TIMESTAMP zwraca taką samą wartość jak funkcja GETDATE ().
teraz, gdy wstawisz nowy wiersz do tabeli bez podawania wartości dla kolumny created_at, SQL Server użyje bieżącej wartości daty i czasu dla tej kolumny:
Code language: SQL (Structured Query Language) (sql)
w tym samouczku nauczyłeś się, jak używać typu danych SQL Server DATETIME2 do przechowywania zarówno Danych daty, jak i czasu w tabeli.