I SQL Server, ligesom du kan bruge T-SQL til at få månedsnavnet fra en dato, kan du også bruge de samme metoder til at få dagsnavnet. Med dagsnavn mener jeg mandag eller tirsdag for eksempel, og ikke datonummer eller nummer på ugedagen (som du også kan få, hvis du har brug for det).
Her er tre måder at returnere dagsnavnet fra en dato i SQL Server ved hjælp af T-SQL.
FORMAT()-funktionen
FORMAT()
funktion returnerer en værdi formateret i det angivne format og valgfri kultur. Du kan bruge den til at returnere dagens navn fra en dato.
Her er et eksempel:
DECLARE @date datetime2 = '2018-07-01'; SELECT FORMAT(@date, 'dddd') AS Result;
Resultat:
+----------+ | Result | |----------| | Sunday | +----------+
I dette tilfælde har vi givet formatet dddd
som er for dagens navn.
Du kan også få navnet på den korte dag ved at angive ddd
som det andet argument:
DECLARE @date datetime2 = '2018-07-01'; SELECT FORMAT(@date, 'ddd') AS Result;
Resultat:
+----------+ | Result | |----------| | Sun | +----------+
Du kan også give et valgfrit argument for at specificere kulturen.
Her er nogle eksempler:
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 | 星期日 | +---------+---------+---------+---------+
DATENAME()-funktionen
DATENAME()
funktionen ligner DATEPART()
funktion, bortset fra at den returnerer navnet af den angivne datodel (men kun hvor et navn er relevant). Det betyder, at den returnerer ugedagens navn eller månedens navn, hvis det er det, du har brug for.
Sådan returnerer du ugedagskomponenten for datoen:
DECLARE @date datetime2 = '2018-07-01'; SELECT DATENAME(weekday, @date) AS Result;
Resultat:
+----------+ | Result | |----------| | Sunday | +----------+
DAYNAME() ODBC-skalarfunktionen
Hvis du af en eller anden grund skal bruge en ODBC skalarfunktion, er der en kaldet DAYNAME()
der specifikt returnerer ugedagens navn fra en dato.
Eksempel:
DECLARE @date datetime2 = '2018-07-01'; SELECT {fn DAYNAME(@date)} AS Result;
Resultat:
+----------+ | Result | |----------| | Sunday | +----------+
Når du bruger ODBC skalarfunktioner i T-SQL, er de omgivet af krøllede klammeparenteser ({}
), og funktionsnavnet er præfikset med fn
.