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

DAY() Ejemplos en SQL Server (T-SQL)

En SQL Server, puede usar el DAY() función para devolver la parte "día" de una fecha. Esta función devuelve un número entero que representa el día del mes (no el día de la semana).

A continuación se muestran ejemplos de cómo utilizar esta función.

Sintaxis

La sintaxis es así:

DAY ( date )

Donde date es una expresión que se resuelve en uno de los siguientes tipos de datos:

  • fecha
  • fechahora
  • desplazamiento de fecha y hora
  • fechahora2
  • pequeña fecha y hora
  • tiempo

Puede ser una expresión de columna, una expresión, un literal de cadena o una variable definida por el usuario.

Ejemplo

He aquí un ejemplo básico de cómo funciona:

SELECT 
   SYSDATETIME() AS 'Date',
   DAY(SYSDATETIME()) AS 'Day';

Resultado:

+-----------------------------+-------+
| Date                        | Day   |
|-----------------------------+-------|
| 2018-06-18 00:20:22.1284540 | 18    |
+-----------------------------+-------+

Así que el DAY() la función pudo extraer el día del datetime2 valor (que fue devuelto por SYSDATETIME() función).

Fecha proporcionada como cadena literal

Aquí hay un ejemplo donde la fecha se proporciona como un literal de cadena.

SELECT DAY('2019-01-07') AS Result;

Resultado:

+----------+
| Result   |
|----------|
| 7        |
+----------+

Y aquí hay un ejemplo donde la fecha se proporciona en un formato diferente:

SELECT DAY('07/01/2017') AS Result;

Resultado:

+----------+
| Result   |
|----------|
| 1        |
+----------+

Sin embargo, por lo general es mejor evitar el uso de fechas en dichos formatos. Si debe hacerlo, deberá tener en cuenta la configuración de idioma y/o la configuración de formato de fecha de la sesión actual.

Configuración de idioma

El resultado del ejemplo anterior dependerá de la configuración de idioma y/o la configuración del formato de fecha de la sesión actual.

Cuando establecemos el idioma, el formato de fecha se establece implícitamente al mismo tiempo.

Esto es lo que sucede cuando proporcionamos el mismo argumento de fecha en dos entornos de idioma diferentes.

Británico

SET LANGUAGE British;
SELECT DAY('07/01/2017') AS Result;

Resultado:

+----------+
| Result   |
|----------|
| 7        |
+----------+

us_English

SET LANGUAGE us_English;
SELECT DAY('07/01/2017') AS Result;

Resultado:

+----------+
| Result   |
|----------|
| 1        |
+----------+

Configuración de formato de fecha

La configuración del formato de fecha puede anular la configuración de idioma, por lo que también debe tener en cuenta esta configuración. Por ejemplo, podríamos estar usando us_English para nuestro idioma (que tiene un formato de fecha predeterminado de mdy ), pero podríamos anular el formato de fecha para que sea dmy .

He aquí un ejemplo:

us_English:formato de fecha predeterminado

Aquí, establecemos el idioma en us_English , que establece implícitamente el formato de fecha en myy .

SET LANGUAGE us_English;
SELECT DAY('07/01/2017') AS Result;

Resultado:

+----------+
| Result   |
|----------|
| 1        |
+----------+

us_English – Anular formato de fecha

Aquí, establecemos el idioma en us_English (que establece implícitamente el formato de fecha), pero luego establecemos explícitamente el formato de fecha en dmy . Esto anula el formato de fecha que se estableció implícitamente cuando configuramos el idioma.

SET LANGUAGE us_English;
SET DATEFORMAT dmy;
SELECT DAY('07/01/2017') AS Result;

Resultado:

+----------+
| Result   |
|----------|
| 7        |
+----------+

Devolver el nombre del día

Si necesita devolver el nombre del día (en lugar del número del día), consulte 3 formas de obtener el nombre del día a partir de una fecha en SQL Server.