Когато форматирате дата с помощта на FORMAT()
функция в SQL Server, датата ще бъде форматирана според езика на вашата локална сесия. Можете обаче да замените това, като посочите култура, която да използвате, или използвате персонализиран формат за дата.
Тази статия демонстрира как изрично да посочите немски формат за дата, като използвате незадължителния аргумент „култура“ на FORMAT()
функция. Той също така демонстрира как да използвате свой собствен персонализиран формат за дата, ако това е по-желателно.
Пример 1 – Кратък немски формат за дата
За да посочите изрично, че дадена дата трябва да се показва в немски формат, използвайте de-de
като трети аргумент. Този (по избор) трети аргумент указва коя култура да се използва.
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'd', 'de-de') Result;
Резултат:
+------------+ | Result | |------------| | 01.12.2020 | +------------+
В този случай използвах малка буква d
като втори аргумент. Това води до сравнително кратък формат на датата, като денят и месецът се показват като числа.
И тъй като използваме немски формат, денят идва преди месеца и всеки компонент за дата е разделен с точки.
Пример 2 – Дълъг немски формат на дата
Можете да промените втория аргумент на D
с главни букви за да се получи по-дълъг формат на датата, като месецът е изписан:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'D', 'de-de') Result;
Резултат:
+----------------------------+ | Result | |----------------------------| | Dienstag, 1. Dezember 2020 | +----------------------------+
Пример 3 – Персонализиран немски формат на дата
Можете също да използвате персонализиран формат за дата, ако е необходимо. Това ви позволява изрично да посочите точно как и къде отива всеки компонент за дата.
Пример:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'ddd, d. MMM, yyyy', 'de-de') Result;
Резултат:
+------------------+ | Result | |------------------| | Di, 1. Dez, 2020 | +------------------+
В този случай все още използвам аргумента култура, за да уточня изрично кой език да използвам.
Моята система в момента използва американски английски, така че ако пропусна аргумента култура от този пример, получавам следното:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'ddd, d. MMM, yyyy') Result;
Резултат:
+-------------------+ | Result | |-------------------| | Tue, 1. Dec, 2020 | +-------------------+
Проверка на текущата ви сесия
Когато използвате FORMAT()
функция, ако аргументът култура не е предоставен, се използва езикът на текущата сесия. Този език се задава или имплицитно, или изрично с помощта на SET LANGUAGE
изявление.
За повече информация, ето 3 начина да получите езика на текущата сесия в SQL Server (T-SQL).
Вижте също Как да зададете текущия език в SQL Server (T-SQL).