sql >> Database >  >> RDS >> Sqlserver

3 manieren om de dagnaam van een datum te krijgen in SQL Server (T-SQL)

In SQL Server kunt u, net zoals u T-SQL kunt gebruiken om de naam van de maand uit een datum te halen, dezelfde methoden gebruiken om de naam van de dag te krijgen. Met dagnaam bedoel ik maandag of dinsdag bijvoorbeeld, en niet het datumnummer of het nummer van de dag van de week (die u ook kunt krijgen als u deze nodig heeft).

Hier zijn drie manieren om de dagnaam van een datum in SQL Server te retourneren met T-SQL.

De FORMAT()-functie

De FORMAT() functie retourneert een waarde die is opgemaakt in de opgegeven indeling en optionele cultuur. Je kunt het gebruiken om de dagnaam van een datum te retourneren.

Hier is een voorbeeld:

DECLARE @date datetime2 = '2018-07-01';
SELECT FORMAT(@date, 'dddd') AS Result;

Resultaat:

+----------+
| Result   |
|----------|
| Sunday   |
+----------+

In dit geval hebben we een formaat van dddd . gegeven wat voor de naam van de dag is.

Je kunt ook de korte dagnaam krijgen door ddd . op te geven als tweede argument:

DECLARE @date datetime2 = '2018-07-01';
SELECT FORMAT(@date, 'ddd') AS Result;

Resultaat:

+----------+
| Result   |
|----------|
| Sun      |
+----------+

U kunt ook een optioneel argument opgeven om de cultuur te specificeren.

Hier zijn enkele voorbeelden:

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';

Resultaat:

+---------+---------+---------+---------+
| en-US   | es-es   | de-de   | zh-cn   |
|---------+---------+---------+---------|
| Sunday  | domingo | Sonntag | 星期日  |
+---------+---------+---------+---------+

De DATENAME() Functie

De DATENAME() functie is vergelijkbaar met de DATEPART() functie, behalve dat het de naam . teruggeeft van het gespecificeerde datumgedeelte (maar alleen waar een naam van toepassing is). Dat betekent dat het de naam van de weekdag of de naam van de maand retourneert als dat is wat je nodig hebt.

U kunt als volgt de weekdagcomponent van de datum retourneren:

DECLARE @date datetime2 = '2018-07-01';
SELECT DATENAME(weekday, @date) AS Result;

Resultaat:

+----------+
| Result   |
|----------|
| Sunday   |
+----------+

De DAYNAME() ODBC scalaire functie

Als je om wat voor reden dan ook een ODBC scalaire functie moet gebruiken, is er een genaamd DAYNAME() die specifiek de naam van de weekdag van een datum retourneert.

Voorbeeld:

DECLARE @date datetime2 = '2018-07-01';
SELECT {fn DAYNAME(@date)} AS Result;

Resultaat:

+----------+
| Result   |
|----------|
| Sunday   |
+----------+

Bij gebruik van ODBC scalaire functies in T-SQL, worden ze omgeven door accolades ({} ) en de functienaam wordt voorafgegaan door fn .


  1. De parameterlimiet van 2100 bereiken (SQL Server) bij gebruik van Bevat()

  2. Proactieve SQL Server-statuscontroles, deel 4:ERRORLOG

  3. Resultatencache

  4. Hoe een bepaald aantal tekens links of rechts van een tekenreeks in SQL Server te selecteren?