Time
не се съхранява с неговия формат на показване в SQL Server.
Следователно от гледна точка на потребителя можете да кажете, че няма формат.
Разбира се, това не е напълно точно, тъй като има формат за съхранение , но като обикновен потребител не можете да го използвате.
Това е вярно за всички типове данни за дата и час:Date
, DateTimeOffset
, DateTime2
, SmallDateTime
, DateTime
и Time
.
Ако имате нужда от формат, тогава не е необходимо да прехвърляте към time
но към char
. Използвайте Convert
за да получите char
имате нужда от:
SELECT CONVERT(char(10), [time], 108) as CSTTime
Ето някои основни данни, ако се интересувате:
В тази статия, публикувана през 2000 г., писателят обяснява задълбочено как SQL Server третира датите и часовете. Съмнявам се дали нещо значително се е променило между 2000 и 2015 г. в начина, по който SQL Server съхранява date
, time
и datetime
вътрешни стойности.
Ето съответните цитати, ако не искате да прочетете всичко:
И така, как SQL Server вътрешно съхранява датите? Той използва 8 байта за съхраняване на стойност за дата и час – първите 4 за датата и вторите 4 за часа. SQL Server може да интерпретира и двата набора от 4 байта като цели числа.
........
........
SQL Server съхранява второто цяло число за времето като броят на часовника след полунощ. Секунда съдържа 300 тикета, така че един тик е равен на 3,3 милисекунди (ms).
от time
всъщност се съхранява като цяло число от 4 байта, то наистина няма формат като неразделна част от типа данни.
Може също да искате да разгледате тази статия за по-подробно обяснение с примерни кодове.