sql >> Databáze >  >> RDS >> Sqlserver

Změnit výchozí formát data uložený v databázi

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))


  1. Import souborů z PostgreSQL do R

  2. Vyberte data ze souboru XML jako tabulku v TSQL

  3. Vložte data do databáze MySQL z aplikace pro Android. Změny se v databázi neprojevily

  4. Jak seskupit podle data, zohlednit časová pásma a DST?