sql >> Base de Datos >  >> RDS >> Sqlserver

3 formas de obtener el nombre del día a partir de una fecha en SQL Server (T-SQL)

En SQL Server, así como puede usar T-SQL para obtener el nombre del mes de una fecha, también puede usar los mismos métodos para obtener el nombre del día. Por el nombre del día, me refiero a lunes o martes por ejemplo, y no el número de la fecha o el número del día de la semana (que también puede obtener si lo necesita).

Aquí hay tres formas de devolver el nombre del día de una fecha en SQL Server usando T-SQL.

Función FORMATO()

El FORMAT() La función devuelve un valor con el formato especificado y la referencia cultural opcional. Puede usarlo para devolver el nombre del día de una fecha.

He aquí un ejemplo:

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

Resultado:

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

En este caso proporcionamos un formato de dddd que es para el nombre del día.

También puede obtener el nombre corto del día proporcionando ddd como segundo argumento:

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

Resultado:

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

También puede proporcionar un argumento opcional para especificar la cultura.

Estos son algunos ejemplos:

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

Resultado:

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

Función DATENAME()

El DATENAME() la función es similar a DATEPART() función, excepto que devuelve el nombre de la parte de la fecha especificada (pero solo cuando se aplica un nombre). Eso significa que devuelve el nombre del día de la semana o el nombre del mes si eso es lo que necesita.

Así es como se devuelve el componente de día de la semana de la fecha:

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

Resultado:

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

La función escalar ODBC DAYNAME()

Si por alguna razón necesita usar una función escalar ODBC, hay una llamada DAYNAME() que devuelve específicamente el nombre del día de la semana de una fecha.

Ejemplo:

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

Resultado:

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

Cuando se usan funciones escalares de ODBC en T-SQL, están rodeadas por llaves ({} ) y el nombre de la función tiene el prefijo fn .