Time
não é armazenado com seu formato de exibição no SQL Server.Portanto, da perspectiva do usuário, você pode dizer que não tem formato.
Claro, isso não é totalmente preciso, pois possui um formato de armazenamento , mas como um usuário médio você não pode realmente usá-lo.
Isso é verdade para todos os tipos de dados de data e hora:
Date
, DateTimeOffset
, DateTime2
, SmallDateTime
, DateTime
e Time
. Se você precisar de um formato, não precisará transmitir para
time
mas para um char
. Use Convert
para obter o char
você precisa:SELECT CONVERT(char(10), [time], 108) as CSTTime
Aqui estão alguns dados de fundo, se você estiver interessado:
Neste artigo publicado em 2000, o escritor explica detalhadamente como o SQL Server trata datas e horas. Duvido que algo significativo tenha mudado entre 2000 e 2015 na maneira como o SQL Server armazena
date
, time
e datetime
valores internamente. Aqui estão as citações relevantes, se você não quiser ler tudo:
Então, como o SQL Server armazena as datas internamente? Ele usa 8 bytes para armazenar um valor de data e hora — os primeiros 4 para a data e os segundos 4 para a hora. O SQL Server pode interpretar os dois conjuntos de 4 bytes como inteiros.
........
........
O SQL Server armazena o segundo inteiro pelo tempo como o número de tiques do relógio após a meia-noite. Um segundo contém 300 tiques, portanto, um tique é igual a 3,3 milissegundos (ms).
desde
time
é realmente armazenado como um inteiro de 4 bytes, ele realmente não tem um formato como parte integrante do tipo de dados. Você também pode conferir este artigo para obter uma explicação mais detalhada com exemplos de código.