I SQL Server, precis som du kan använda T-SQL för att få månadsnamnet från ett datum, kan du också använda samma metoder för att få dagens namn. Med dagsnamn menar jag måndag eller tisdag till exempel, och inte datumnumret eller veckodagens nummer (som du också kan få om du behöver det).
Här är tre sätt att returnera dagsnamnet från ett datum i SQL Server med T-SQL.
FORMAT()-funktionen
FORMAT()
funktion returnerar ett värde formaterat i det angivna formatet och valfri kultur. Du kan använda den för att returnera dagens namn från ett datum.
Här är ett exempel:
DECLARE @date datetime2 = '2018-07-01'; SELECT FORMAT(@date, 'dddd') AS Result;
Resultat:
+----------+ | Result | |----------| | Sunday | +----------+
I det här fallet tillhandahöll vi formatet dddd
som är för dagens namn.
Du kan också få kortdagens namn genom att ange ddd
som det andra argumentet:
DECLARE @date datetime2 = '2018-07-01'; SELECT FORMAT(@date, 'ddd') AS Result;
Resultat:
+----------+ | Result | |----------| | Sun | +----------+
Du kan också ge ett valfritt argument för att specificera kulturen.
Här är några exempel:
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';
Resultat:
+---------+---------+---------+---------+ | en-US | es-es | de-de | zh-cn | |---------+---------+---------+---------| | Sunday | domingo | Sonntag | 星期日 | +---------+---------+---------+---------+
DATUMNAMN()-funktionen
DATENAME()
funktionen liknar DATEPART()
funktion, förutom att den returnerar namnet av den angivna datumdelen (men endast där ett namn är tillämpligt). Det betyder att den returnerar veckodagens namn eller månadsnamnet om det är vad du behöver.
Så här returnerar du veckodagskomponenten för datumet:
DECLARE @date datetime2 = '2018-07-01'; SELECT DATENAME(weekday, @date) AS Result;
Resultat:
+----------+ | Result | |----------| | Sunday | +----------+
DAYNAME() ODBC-skalärfunktionen
Om du av någon anledning behöver använda en ODBC-skalär funktion, finns det en som heter DAYNAME()
som specifikt returnerar veckodagens namn från ett datum.
Exempel:
DECLARE @date datetime2 = '2018-07-01'; SELECT {fn DAYNAME(@date)} AS Result;
Resultat:
+----------+ | Result | |----------| | Sunday | +----------+
När du använder skalära ODBC-funktioner i T-SQL är de omgivna av klammerparenteser ({}
) och funktionsnamnet har prefixet fn
.