V SQL Server můžete použít T-SQL FORMAT()
funkce pro zobrazení data v požadovaném formátu. Tato funkce přijímá volitelný argument „kultura“, který můžete použít k určení formátu data v USA.
Tento argument můžete nebo nemusíte použít v závislosti na jazyku vaší místní relace. Zde je však postup, jak explicitně určit formát data v USA.
Příklad 1 – Krátký formát data v USA
Chcete-li explicitně určit, že datum má být zobrazeno ve formátu americké angličtiny, použijte en-US
jako argument kultury:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'd', 'en-US') Result;
Výsledek:
+-----------+ | Result | |-----------| | 12/1/2020 | +-----------+
V tomto případě jsem použil malé d
jako druhý argument. Výsledkem je relativně krátký formát data, kdy se den a měsíc zobrazují jako čísla.
A protože používáme formát data v USA, měsíc předchází dne.
Příklad 2 – dlouhý americký formát data
Pokud jej změním na velké D
, získám delší formát s vyznačeným dnem a měsícem:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'D', 'en-US') Result;
Výsledek:
+---------------------------+ | Result | |---------------------------| | Tuesday, December 1, 2020 | +---------------------------+
Příklad 3 – Vlastní formát data v USA
Pokud zjistíte, že výše uvedené formáty data jsou příliš omezující, můžete vždy zadat vlastní formát data. Pokud se vám například líbí předchozí příklad, ale chcete mít pouze první 3 písmena dne a měsíce, můžete udělat toto:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'ddd, MMM d, yyyy', 'en-US') Result;
Výsledek:
+------------------+ | Result | |------------------| | Tue, Dec 1, 2020 | +------------------+
Stále určuji kulturu, i když přesně specifikuji, kam se každá komponenta data dostane. Důvod, proč to dělám, je výslovně uvést, který jazyk použít. Vynechání tohoto argumentu může nebo nemusí způsobit problémy v závislosti na používaných jazycích.
Dobrá věc na vlastních formátech data je, že vám poskytují velkou flexibilitu. Komponenty můžete přepínat a objeví se přesně tam, kde je chcete.
Kontrola aktuální relace
Při použití FORMAT()
Pokud není zadán argument kultury, použije se jazyk aktuální relace. Tento jazyk se nastavuje buď implicitně, nebo explicitně pomocí SET LANGUAGE
prohlášení.
Další informace naleznete zde 3 způsoby, jak získat jazyk aktuální relace na serveru SQL Server (T-SQL).
Viz také Jak nastavit aktuální jazyk v SQL Server (T-SQL).