Вы находитесь на странице: 1из 9

DATEPART ( datepart , date )

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

Argumentos
datepart Parmetro 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

millisecond

ms

La parte de la fecha week (wk, ww) refleja los cambios realizados en SET DATEFIRST. El 1 de enero de cualquier ao define el nmero de inicio para la parte de la fecha week, por ejemplo: DATEPART(wk, 'Jan 1, xxxx') = 1, donde xxxx es cualquier ao. La parte de la fecha weekday (dw) devuelve un nmero que corresponde al da de la semana, por ejemplo: Domingo = 1, Sbado = 7. El nmero generado por la parte de la fecha weekday depende del valor establecido por SET DATEFIRST. Indica el primer da de la semana. date Es una expresin que devuelve un valor datetime o smalldatetime, o una cadena de caracteres con formato de fecha. Use el tipo de datos datetime slo para fechas posteriores al 1 de enero de 1753. Almacene las fechas anteriores como datos de caracteres. Si escribe valores de tipo datetime, inclyalos siempre entre comillas. Puesto que smalldatetime es exacto nicamente para el minuto, cuando se utiliza un valor smalldatetime, los segundos y milisegundos son siempre 0. Si especifica solamente los dos ltimos dgitos del ao, los valores menores o iguales que los dos ltimos dgitos del valor de la opcin de configuracin two-digit year cutoff pertenecen al mismo siglo que el ao lmite. Los valores mayores que los dos ltimos dgitos del valor de esta opcin se consideran del siglo que precede al ao lmite. Por ejemplo, si two-digit year cutoff es 2049 (valor predeterminado), 49 se interpreta como 2049 y 50 se interpreta como 1950. Para evitar ambigedades, utilice aos de cuatro dgitos. Para obtener ms informacin acerca de cmo especificar valores de hora, vea Formatos de hora. Para obtener ms informacin acerca de cmo especificar fechas, vea Date y Time (Transact-SQL).

Tipos de valor devueltos


int

Ejemplos
La funcin GETDATE devuelve la fecha actual. No obstante, la fecha completa no es siempre la informacin necesaria para la comparacin; con frecuencia, slo se compara una parte de la fecha. En el siguiente ejemplo se muestra la salida de GETDATE y DATEPART.
Copiar cdigo

SELECT GETDATE() AS 'Current Date' GO ste es el conjunto de resultados.


Copiar cdigo

Current Date --------------------------Feb 18 1998 11:46PM SELECT DATEPART(month, GETDATE()) AS 'Month Number' GO ste es el conjunto de resultados.
Copiar cdigo

Month Number -----------2 En el siguiente ejemplo se supone que la fecha es el 29 de mayo.


Copiar cdigo

SELECT DATEPART(month, GETDATE()) GO ste es el conjunto de resultados.


Copiar cdigo

----------5 (1 row(s) affected) En el siguiente ejemplo, la fecha se especifica como un nmero. Observe que SQL Server interpreta 0 como el 1 de enero de 1900.
Copiar cdigo

SELECT DATEPART(m, 0), DATEPART(d, 0), DATEPART(yy, 0) ste es el conjunto de resultados.


Copiar cdigo

----- ------ -----1 1 1900 En Microsoft SQL Server 2005 se pueden especificar datos de fechas con el nombre completo del mes (por ejemplo, Abril) o la abreviatura del mes (por ejemplo, Abr) en el idioma actual; las comas son opcionales y las maysculas se pasan por alto. stas son algunas directrices para utilizar los formatos alfabticos de fecha: Incluya los datos de fecha y hora entre comillas simples ().

Los formatos alfabticos vlidos para los datos de fecha de SQL Server (los caracteres incluidos entre corchetes son opcionales) son:

Copiar cdigo

Apr[il] [15][,] 1996 Apr[il] 15[,] [19]96 Apr[il] 1996 [15] [15] Apr[il][,] 1996 15 Apr[il][,][19]96 15 [19]96 apr[il] [15] 1996 apr[il]

1996 APR[IL] [15] 1996 [15] APR[IL] Si slo especifica los dos ltimos dgitos del ao, los valores inferiores a los dos ltimos dgitos del valor de la opcin de configuracin Fecha lmite de ao de dos dgitos pertenecen al mismo siglo que el ao lmite. Los valores mayores o iguales que el valor de esta opcin pertenecen al siglo anterior al ao lmite. Por ejemplo, si Fecha lmite de ao de dos dgitos es 2050 (valor predeterminado), 25 se interpreta como 2025 y 50 se interpreta como 1950. Para evitar ambigedades, utilice aos de cuatro dgitos.

Si falta el da, se usar el primer da del mes.

La configuracin de sesin SET DATEFORMAT no se aplica cuando se especifica el mes de forma alfabtica. Microsoft SQL Server 2005 permite especificar datos de fecha con un mes en forma de nmero. Por ejemplo, 20/5/97 representa el veinte de mayo de 1997. Cuando use el formato numrico de fecha, especifique el da, mes y ao en una cadena con marcas de barras diagonales (/), guiones (-) o puntos (.) como separadores. Esta cadena debe aparecer de la forma siguiente: nmero separator nmero separator nmero [time] [time] Los formatos numricos siguientes son vlidos:
Copiar cdigo

[0]4/15/[19]96 [0]4-15-[19]96 [0]4.15.[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, el orden predeterminado de la fecha es mdy (mes, da, ao). La

instruccin SET DATEFORMAT permite cambiar el orden de la fecha. Esto puede afectar tambin al orden de la fecha, segn el idioma. La configuracin de SET DATEFORMAT determina cmo se interpretan los valores de fecha. Si el orden no coincide con esta configuracin, los valores no se interpretarn como fechas, puesto que se encuentran fuera del intervalo, o bien se interpretarn incorrectamente. Por ejemplo, 12/10/08 se puede interpretar de seis formas distintas, dependiendo de la configuracin de DATEFORMAT.

DATEADD (datepart , number, date )

Argumentos
datepart Es el parmetro que especifica en qu parte de la fecha se devuelve un nuevo valor. 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 Abreviaturas yy, yyyy qq, q mm, m dy, y dd, d wk, ww dw, w

hour minute second millisecond

hh mi, n ss, s ms

number Valor que se utiliza para incrementar datepart. Si especifica un valor que no sea un entero, se descarta la parte decimal del valor. Por ejemplo, si se especifica day para datepart y 1,75 para number, date se incrementa en 1. date Es una expresin que devuelve un valor datetime o smalldatetime, o una cadena de caracteres con formato de fecha. Para obtener informacin sobre cmo especificar fechas, vea Date y Time (Transact-SQL). Si especifica slo los dos ltimos dgitos del ao, los valores menores o iguales que los dos ltimos dgitos del valor de la opcin de configuracin two digit year cutoff pertenecen al mismo siglo que el ao lmite. Los valores mayores que los dos ltimos dgitos del valor de esta opcin pertenecen al siglo anterior al ao lmite. Por ejemplo, si two-digit year cutoff es 2049 (valor predeterminado), 49 se interpreta como 2049 y 50 se interpreta como 1950. Para evitar ambigedades, utilice aos de cuatro dgitos.

Notas
Cuando datepart es mes, el nmero de das del mes afecta al resultado. Por ejemplo, agosto tiene 31 das y septiembre tiene 30 das. Las dos instrucciones siguientes devuelven 2006-09-30 00:00:00.000.
Copiar cdigo

SELECT DATEADD(month, 1, '08/30/2006') SELECT DATEADD(month, 1, '08/31/2006') Es decir, al agregar un mes al final de agosto, se devuelve el ltimo da de septiembre.

Tipos de valor devueltos


Devuelve datetime, pero puede devolver smalldatetime si el argumento date es de tipo smalldatetime.

Ejemplos
En el siguiente ejemplo se imprime una lista de un margen de tiempo para los pedidos de la base de datos AdventureWorks. Este margen de tiempo representa la fecha del pedido existente ms 21 das.
Copiar cdigo

USE AdventureWorks; GO SELECT DATEADD(day, 21, OrderDate)AS TimeFrame FROM Sales.SalesOrderHeader; GO

-- Set date format to month, day, year. SET DATEFORMAT mdy; GO DECLARE @datevar DATETIME; SET @datevar = '12/31/1998'; SELECT @datevar AS DateVar; GO -- Set date format to year, day, month. SET DATEFORMAT ydm; GO DECLARE @datevar DATETIME; SET @datevar = '1998/31/12'; SELECT @datevar AS DateVar; GO -- Set date format to year, month, day.

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

Вам также может понравиться