В SQL Server, точно както можете да използвате T-SQL, за да получите името на месеца от дата, можете също да използвате същите методи, за да получите името на деня. Под име на деня имам предвид понеделник или вторник например, а не номера на датата или номера на деня от седмицата (които също можете да получите, ако имате нужда).
Ето три начина да върнете името на деня от дата в SQL Server с помощта на T-SQL.
Функцията FORMAT()
FORMAT()
функцията връща стойност, форматирана в посочения формат и незадължителна култура. Можете да го използвате, за да върнете името на деня от дата.
Ето един пример:
DECLARE @date datetime2 = '2018-07-01'; SELECT FORMAT(@date, 'dddd') AS Result;
Резултат:
+----------+ | Result | |----------| | Sunday | +----------+
В този случай предоставихме формат dddd
което е за името на деня.
Можете също да получите краткото име на деня, като предоставите ddd
като втори аргумент:
DECLARE @date datetime2 = '2018-07-01'; SELECT FORMAT(@date, 'ddd') AS Result;
Резултат:
+----------+ | Result | |----------| | Sun | +----------+
Можете също да предоставите незадължителен аргумент, за да посочите културата.
Ето няколко примера:
DECLARE @date datetime2 = '2018-07-01'; SELECT FORMAT(@date, 'dddd', 'en-US') AS 'en-US', FORMAT(@date, 'dddd', 'es-es') AS 'es-es', FORMAT(@date, 'dddd', 'de-de') AS 'de-de', FORMAT(@date, 'dddd', 'zh-cn') AS 'zh-cn';
Резултат:
+---------+---------+---------+---------+ | en-US | es-es | de-de | zh-cn | |---------+---------+---------+---------| | Sunday | domingo | Sonntag | 星期日 | +---------+---------+---------+---------+
Функцията DATENAME()
DATENAME()
функцията е подобна на DATEPART()
функция, с изключение на това, че връща име от посочената част от датата (но само когато е приложимо име). Това означава, че връща името на деня от седмицата или името на месеца, ако това е, което ви е необходимо.
Ето как да върнете компонента за ден от седмицата на датата:
DECLARE @date datetime2 = '2018-07-01'; SELECT DATENAME(weekday, @date) AS Result;
Резултат:
+----------+ | Result | |----------| | Sunday | +----------+
Скаларната функция DAYNAME() ODBC
Ако по някаква причина трябва да използвате ODBC скаларна функция, има такава, наречена DAYNAME()
който конкретно връща името на деня от седмицата от дата.
Пример:
DECLARE @date datetime2 = '2018-07-01'; SELECT {fn DAYNAME(@date)} AS Result;
Резултат:
+----------+ | Result | |----------| | Sunday | +----------+
Когато използвате ODBC скаларни функции в T-SQL, те са заобиколени от къдрави скоби ({}
) и името на функцията е с префикс fn
.