Time
nie jest przechowywany w wyświetlanym formacie w SQL Server.
Dlatego z perspektywy użytkownika można powiedzieć, że nie ma formatu.
Oczywiście nie jest to całkowicie dokładne, ponieważ ma format przechowywania , ale jako przeciętny użytkownik tak naprawdę nie możesz go używać.
Dotyczy to wszystkich typów danych daty i godziny:Date
, DateTimeOffset
, DateTime2
, SmallDateTime
, DateTime
i Time
.
Jeśli potrzebujesz formatu, nie musisz przesyłać na time
ale do char
. Użyj Convert
aby uzyskać char
potrzebujesz:
SELECT CONVERT(char(10), [time], 108) as CSTTime
Oto kilka podstawowych danych, jeśli jesteś zainteresowany:
W tym artykule opublikowanym w 2000 roku autor szczegółowo wyjaśnia, w jaki sposób SQL Server traktuje daty i godziny. Wątpię, czy między 2000 a 2015 rokiem zmieniło się coś istotnego w sposobie przechowywania date
przez SQL Server , time
i datetime
wartości wewnętrznie.
Oto odpowiednie cytaty, jeśli nie chcesz ich czytać w całości:
Więc w jaki sposób SQL Server wewnętrznie przechowuje daty? Wykorzystuje 8 bajtów do przechowywania wartości daty i godziny — pierwsze 4 dla daty, a drugie 4 dla czasu. SQL Server może interpretować oba zestawy 4 bajtów jako liczby całkowite.
........
........
SQL Server przechowuje drugą liczbę całkowitą dla czasu jako liczba tyka po północy. Sekunda zawiera 300 tików, więc tik to 3,3 milisekundy (ms).
od time
jest faktycznie przechowywana jako 4-bajtowa liczba całkowita, tak naprawdę nie ma formatu jako integralnej części typu danych.
Możesz również zapoznać się z tym artykułem, aby uzyskać bardziej szczegółowe wyjaśnienie z przykładami kodu.