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

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

En SQL Server, puede usar el MONTH() para devolver la parte del "mes" de una fecha. Esto se devuelve como un número entero (no el nombre del mes).

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

Sintaxis

La sintaxis es así:

MONTH ( 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',
   MONTH(SYSDATETIME()) AS 'Month';

Resultado:

+-----------------------------+---------+
| Date                        | Month   |
|-----------------------------+---------|
| 2018-06-18 00:39:06.7954314 | 6       |
+-----------------------------+---------+

Entonces el MONTH() la función pudo extraer el mes de 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 MONTH('2019-01-07') AS Result;

Resultado:

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

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

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

Resultado:

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

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 MONTH('07/01/2017') AS Result;

Resultado:

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

us_English

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

Resultado:

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

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 MONTH('07/01/2017') AS Result;

Resultado:

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

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 MONTH('07/01/2017') AS Result;

Resultado:

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

Devolver el nombre del mes

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