To je jádro zmatku. Už jen proto, že SQL Server Management Studio zobrazuje sloupec datum a čas v tomto formátu neznamená, že je uložen JAKO TEXT YYYY-MM-DD hh:mm:ss.zzz. Je uložen jako binární, něco jako 0000101000001010..
Vaše data jsou uložena na serveru SQL Server jako řada bajtů (ve skutečnosti bitů), které tvoří nějakou číselnou hodnotu, která je posunuta od 1900-01-01. Data nemají žádný vlastní formát. Máte na mysli, že SSMS ve výchozím nastavení zobrazuje sloupce data a času [zobrazit] jako RRRR-MM-DD hh:mm:ss.zzz. Pokud používáte front-end programovací nástroj, může to také uložit výchozí formát [zobrazení], pokud jste nepožádali o jiný.
Neexistuje absolutně ŽÁDNÝ způsob, jak pomocí možností nebo konfigurace přimět SSMS zobrazovat data a čas v jiném formátu. Pokud musíte, budete muset aktualizovat dotaz SQL, aby se sloupec datetime převedl na sloupec VARCHAR obsahující TEXTual ekvivalent v určitém formátu. To může být užitečné v SSMS, ale bylo by špatné, když se použije jako zdroj dat pro front-end GUI/webové aplikace – protože hodnoty nejsou datetime a nelze je použít pro výpočet intervalů, grafy, vázané na datum atd.
Podívejte se na tento příklad zobrazení času (getdate()) jako YYYY-DD-MM, což je velmi neobvyklý formát. Všimněte si, že pole data/proměnná musí být použita dvakrát:
select stuff(convert(char(7), getdate(), 120), 5, 0, '-' + convert(char(2), getdate(), 3))