Time
není uložen se svým formátem zobrazení v SQL Server.
Proto z uživatelského hlediska můžete říci, že nemá žádný formát.
To samozřejmě není úplně přesné, protože má formát úložiště , ale jako průměrný uživatel to ve skutečnosti nemůžete použít.
To platí pro všechny typy dat a času:Date
, DateTimeOffset
, DateTime2
, SmallDateTime
, DateTime
a Time
.
Pokud potřebujete formát, nemusíte přenášet do time
ale na char
. Použijte Convert
získat char
potřebujete:
SELECT CONVERT(char(10), [time], 108) as CSTTime
Zde jsou některá data na pozadí, pokud vás to zajímá:
V tomto článku publikovaném v roce 2000 autor podrobně vysvětluje, jak SQL Server zachází s daty a časy. Pochybuji, že se mezi lety 2000 a 2015 něco významného změnilo ve způsobu, jakým SQL Server ukládá date
, time
a datetime
hodnot interně.
Zde jsou relevantní citace, pokud je nechcete číst celé:
Jak tedy SQL Server interně ukládá data? K uložení hodnoty data a času používá 8 bajtů – první 4 pro datum a druhé 4 pro čas. SQL Server dokáže interpretovat obě sady 4 bajtů jako celá čísla.
........
........
SQL Server ukládá druhé celé číslo po dobu jako počet tikání hodin po půlnoci. Sekunda obsahuje 300 tiků, takže jeden tik se rovná 3,3 milisekundám (ms).
od time
je ve skutečnosti uloženo jako 4bajtové celé číslo, ve skutečnosti nemá formát jako integrální součást datového typu.
Můžete si také přečíst tento článek, kde najdete podrobnější vysvětlení s ukázkami kódu.