sql >> Databasteknik >  >> RDS >> Sqlserver

3 sätt att få dagnamnet från ett datum i SQL Server (T-SQL)

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 .


  1. Finns det något sätt att inaktivera funktionsöverbelastning i Postgres

  2. Tips för att använda SQL Server med Salesforce SOQL

  3. Hur du ser till att din MySQL-databas är säker

  4. Arbeta med Structured Query Language (SQL) med Microsoft Access 2010, 2013, 2016 och 2019