You are on page 1of 9

DATEPART ( datepart , date

)

Notas
Las funciones DAY, MONTH y YEAR son sinónimos de DATEPART(dd, date), DATEPART(mm, date) y DATEPART(yy, date) respectivamente.

Argumentos
datepart Parámetro que especifica la parte de la fecha que se devolverá. En la tabla siguiente se incluyen las partes de fecha y las abreviaturas reconocidas por Microsoft SQL Server 2005. Parte de la fecha year quarter month dayofyear day week weekday hour minute second Abreviaturas yy, yyyy qq, q mm, m dy, y dd, d wk, ww dw hh mi, n ss, s

La parte de la fecha weekday (dw) devuelve un número que corresponde al día de la semana.millisecond ms La parte de la fecha week (wk. cuando se utiliza un valor smalldatetime. Sábado = 7. Para evitar ambigüedades. Almacene las fechas anteriores como datos de caracteres. los segundos y milisegundos son siempre 0. inclúyalos siempre entre comillas. por ejemplo: Domingo = 1. ww) refleja los cambios realizados en SET DATEFIRST. por ejemplo: DATEPART(wk. Indica el primer día de la semana. El 1 de enero de cualquier año define el número de inicio para la parte de la fecha week. Si escribe valores de tipo datetime. Los valores mayores que los dos últimos dígitos del valor de esta opción se consideran del siglo que precede al año límite. Por ejemplo. vea Date y Time (Transact-SQL). vea Formatos de hora. Use el tipo de datos datetime sólo para fechas posteriores al 1 de enero de 1753. El número generado por la parte de la fecha weekday depende del valor establecido por SET DATEFIRST. Puesto que smalldatetime es exacto únicamente para el minuto. . si two-digit year cutoff es 2049 (valor predeterminado). 49 se interpreta como 2049 y 50 se interpreta como 1950. o una cadena de caracteres con formato de fecha. date Es una expresión que devuelve un valor datetime o smalldatetime. Para obtener más información acerca de cómo especificar fechas. utilice años de cuatro dígitos. Para obtener más información acerca de cómo especificar valores de hora. Si especifica solamente los dos últimos dígitos del año. 'Jan 1. donde xxxx es cualquier año. xxxx') = 1. los valores menores o iguales que los dos últimos dígitos del valor de la opción de configuración two-digit year cutoff pertenecen al mismo siglo que el año límite.

Copiar código Month Number -----------2 En el siguiente ejemplo se supone que la fecha es el 29 de mayo. con frecuencia. En el siguiente ejemplo se muestra la salida de GETDATE y DATEPART. Copiar código SELECT GETDATE() AS 'Current Date' GO éste es el conjunto de resultados. GETDATE()) GO éste es el conjunto de resultados. Copiar código SELECT DATEPART(month.Tipos de valor devueltos int Ejemplos La función GETDATE devuelve la fecha actual. sólo se compara una parte de la fecha. la fecha completa no es siempre la información necesaria para la comparación. GETDATE()) AS 'Month Number' GO éste es el conjunto de resultados. Copiar código Current Date --------------------------Feb 18 1998 11:46PM SELECT DATEPART(month. Copiar código . No obstante.

0) éste es el conjunto de resultados. DATEPART(yy. Observe que SQL Server interpreta 0 como el 1 de enero de 1900.] [19]96 Apr[il] 1996 [15] [15] Apr[il][. Copiar código ----. las comas son opcionales y las mayúsculas se pasan por alto.----------5 (1 row(s) affected) En el siguiente ejemplo. Abr) en el idioma actual. Abril) o la abreviatura del mes (por ejemplo. la fecha se especifica como un número.][19]96 15 [19]96 apr[il] [15] 1996 apr[il] . Éstas son algunas directrices para utilizar los formatos alfabéticos de fecha: Incluya los datos de fecha y hora entre comillas simples (’). Copiar código SELECT DATEPART(m.] 1996 15 Apr[il][. 0).-----1 1 1900 En Microsoft SQL Server 2005 se pueden especificar datos de fechas con el nombre completo del mes (por ejemplo. • Los formatos alfabéticos válidos para los datos de fecha de SQL Server (los caracteres incluidos entre corchetes son opcionales) son: • Copiar código Apr[il] [15][. DATEPART(d. 0).-----.] 1996 Apr[il] 15[.

25 se interpreta como 2025 y 50 se interpreta como 1950. el orden predeterminado de la fecha es mdy (mes. Los valores mayores o iguales que el valor de esta opción pertenecen al siglo anterior al año límite. Por ejemplo. La configuración de sesión SET DATEFORMAT no se aplica cuando se especifica el mes de forma alfabética. se usará el primer día del mes. 20/5/97 representa el veinte de mayo de 1997. Esta cadena debe aparecer de la forma siguiente: número separator número separator número [time] [time] Los formatos numéricos siguientes son válidos: Copiar código [0]4/15/[19]96 [0]4-15-[19]96 [0]4. si Fecha límite de año de dos dígitos es 2050 (valor predeterminado).15.) como separadores. mes y año en una cadena con marcas de barras diagonales (/). • • Si falta el día. año). especifique el día. Para evitar ambigüedades.[19]96 [04]/[19]96/15 15/[0]4/[19]96 15/[19]96/[0]4 [19]96/15/[0]4 [19]96/[04]/15 --------- (mdy) (mdy) (mdy) (myd) (dmy) (dym) (ydm) (ymd) Cuando el idioma establecido es us_english. guiones (-) o puntos (. Microsoft SQL Server 2005 permite especificar datos de fecha con un mes en forma de número.1996 APR[IL] [15] 1996 [15] APR[IL] • Si sólo especifica los dos últimos dígitos del año. Cuando use el formato numérico de fecha. los valores inferiores a los dos últimos dígitos del valor de la opción de configuración Fecha límite de año de dos dígitos pertenecen al mismo siglo que el año límite. Por ejemplo. La . día. utilice años de cuatro dígitos.

puesto que se encuentran fuera del intervalo. y dd. date ) Argumentos datepart Es el parámetro que especifica en qué parte de la fecha se devuelve un nuevo valor. m dy. ww dw. yyyy qq. DATEADD (datepart . dependiendo de la configuración de DATEFORMAT. o bien se interpretarán incorrectamente. Parte de la fecha year quarter month dayofyear day week weekday Abreviaturas yy. Por ejemplo. number.instrucción SET DATEFORMAT permite cambiar el orden de la fecha. En la tabla siguiente se incluyen las partes de fecha y las abreviaturas reconocidas por Microsoft SQL Server 2005. d wk. 12/10/08 se puede interpretar de seis formas distintas. Si el orden no coincide con esta configuración. La configuración de SET DATEFORMAT determina cómo se interpretan los valores de fecha. q mm. según el idioma. los valores no se interpretarán como fechas. w . Esto puede afectar también al orden de la fecha.

n ss. Los valores mayores que los dos últimos dígitos del valor de esta opción pertenecen al siglo anterior al año límite. date Es una expresión que devuelve un valor datetime o smalldatetime. Por ejemplo. utilice años de cuatro dígitos. se descarta la parte decimal del valor. Para obtener información sobre cómo especificar fechas. Las dos instrucciones siguientes devuelven 2006-09-30 00:00:00. Para evitar ambigüedades. Copiar código . vea Date y Time (Transact-SQL). si two-digit year cutoff es 2049 (valor predeterminado).000. o una cadena de caracteres con formato de fecha. Por ejemplo. 49 se interpreta como 2049 y 50 se interpreta como 1950. date se incrementa en 1. Notas Cuando datepart es mes.hour minute second millisecond hh mi. el número de días del mes afecta al resultado. s ms number Valor que se utiliza para incrementar datepart. los valores menores o iguales que los dos últimos dígitos del valor de la opción de configuración two digit year cutoff pertenecen al mismo siglo que el año límite. agosto tiene 31 días y septiembre tiene 30 días. Por ejemplo.75 para number. si se especifica day para datepart y 1. Si especifica un valor que no sea un entero. Si especifica sólo los dos últimos dígitos del año.

SET @datevar = '1998/31/12'. GO DECLARE @datevar DATETIME. day. GO -.SELECT DATEADD(month.Set date format to year. OrderDate)AS TimeFrame FROM Sales.Set date format to month. Tipos de valor devueltos Devuelve datetime. month. month. 21. al agregar un mes al final de agosto. Copiar código USE AdventureWorks. GO -. Este margen de tiempo representa la fecha del pedido existente más 21 días. SELECT @datevar AS DateVar. '08/30/2006') SELECT DATEADD(month. SET DATEFORMAT mdy. day. SET @datevar = '12/31/1998'.SalesOrderHeader. pero puede devolver smalldatetime si el argumento date es de tipo smalldatetime. 1. SET DATEFORMAT ydm. GO DECLARE @datevar DATETIME. 1. Ejemplos En el siguiente ejemplo se imprime una lista de un margen de tiempo para los pedidos de la base de datos AdventureWorks.Set date format to year. se devuelve el último día de septiembre. GO SELECT DATEADD(day. '08/31/2006') Es decir. GO -. day. SELECT @datevar AS DateVar. . year.

SELECT @datevar AS DateVar. GO DECLARE @datevar DATETIME. GO .SET DATEFORMAT ymd. SET @datevar = '1998/12/31'.