Expandir Minimizar
Personas que lo han encontrado útil: 9 de 11 - Valorar este tema

DATEPART (Transact-SQL)

Devuelve un entero que representa el parámetro datepart especificado del parámetro date especificado.

Para obtener información general acerca de todos los tipos de datos y funciones de fecha y hora de Transact-SQL, consulte Tipos de datos y funciones de fecha y hora (Transact-SQL). Para obtener información y ejemplos que son comunes a los tipos de datos y funciones de fecha y hora, consulte Usar datos de fecha y hora.

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL


DATEPART (datepart , date )
datepart

Es la parte de date (una fecha u hora) para la que se devolverá un integer. En la siguiente tabla se recogen los argumentos válidos de datepart. Los equivalentes de variables definidas por el usuario no son válidos.

datepart

Abreviaturas

year

yy , yyyy

quarter

qq , q

month

mm , m

dayofyear

dy , y

day

dd , d

week

wk , ww

weekday

dw

hour

hh

minute

mi, n

second

ss , s

millisecond

ms

microsecond

mcs

nanosecond

ns

TZoffset

tz

ISO_WEEK

isowk , isoww

date

Es una expresión que se puede resolver como un valor time, date, smalldatetime, datetime, datetime2 o datetimeoffset. date puede ser una expresión, una expresión de columna, una variable definida por el usuario o un literal de cadena.

Para evitar la ambigüedad, utilice años de cuatro dígitos. Parta obtener información sobre los años de dos dígitos, consulte two digit year cutoff (opción).

Cada datepart y sus abreviaturas devuelven el mismo valor.

El valor devuelto depende del entorno del idioma definido por SET LANGUAGE y el idioma predeterminado del inicio de sesión. Si date es un literal de cadena para algunos formatos, el valor devuelto depende del formato especificado mediante SET DATEFORMAT. SET DATEFORMAT no afecta al valor devuelto cuando la fecha es una expresión de columna de un tipo de datos de hora o fecha.

En la siguiente tabla se enumeran todos los argumentos datepart con los correspondientes valores devueltos para la instrucción SELECT DATEPART(datepart,'2007-10-30 12:15:32.1234567 +05:10'). El tipo de datos del argumento date es datetimeoffset(7). El valor devuelto datepartnanosecond tiene una escala de 9 (.123456700) y las dos últimas posiciones son siempre 00.

datepart

Valor devuelto

year, yyyy, yy

2007

quarter, qq, q

4

month, mm, m

10

dayofyear, dy, y

303

day, dd, d

30

week, wk, ww

45

weekday, dw

1

hour, hh

12

minute, n

15

second, ss, s

32

millisecond, ms

123

microsecond, mcs

123456

nanosecond, ns

123456700

TZoffset, tz

310

Si datepart es week (wk, ww) o weekday (dw), el valor devuelto depende del valor que se ha definido mediante SET DATEFIRST.

El 1 de enero de cualquier año define el número inicial de week para datepart; por ejemplo: DATEPART (wk, 'Jan 1, xxxx') = 1, donde xxxx es cualquier año.

En la tabla siguiente se enumeran los valores devueltos para week y weekdaydatepart para '2007-04-21 ' para cada argumento SET DATEFIRST. El 1 de enero es domingo en el año 2007. El 21 de abril es sábado en el año 2007. El valor predeterminado para inglés de EE.UU. es SET DATEFIRST 7, Sunday.

SET DATEFIRST

argumento

week

devuelto

weekday

devuelto

1

16

6

2

17

5

3

17

4

4

17

3

5

17

2

6

17

1

7

16

7

Los valores devueltos mediante DATEPART (year, date), DATEPART (month, date) y DATEPART (day, date) son los mismos que los que devuelven las funciones YEAR, MONTH y DAY, f respectivamente.

ISO 8601 incluye el sistema ISO de fecha-semana, un sistema de numeración para las semanas. Cada semana se asocia al año en el que cae el jueves. Por ejemplo, la semana 1 de 2004 (2004W01) abarca del lunes 29 de diciembre de 2003 al domingo 4 de enero de 2004. El número de semana más alto en un año puede ser 52 o 53. Este estilo de numeración se utiliza normalmente en los países europeos, y es poco frecuente en otros países.

Es posible que el sistema de numeración usado en varios países no se ajuste a las normas ISO. Existen por lo menos seis posibilidades, como se muestra en la tabla siguiente

Primer día de la semana

La primera semana del año contiene

Semanas asignadas dos veces

Usado por/en

Domingo

1 de enero,

El primer sábado,

1–7 días del año

Estados Unidos

Lunes

1 de enero,

El primer domingo,

1–7 días del año

La mayoría de los países europeos y Reino Unido

Lunes

4 de enero,

El primer jueves,

4–7 días del año

No

ISO 8601, Noruega y Suecia

Lunes

7 de enero,

El primer lunes,

7 días del año

No

Miércoles

1 de enero,

El primer martes,

1–7 días del año

Sábado

1 de enero,

El primer viernes,

1–7 días del año

TZoffset (tz) se devuelve como el número de minutos (con signo). La instrucción siguiente devuelve un desfase de zona horaria de 310 minutos.

SELECT DATEPART (TZoffset, 2007-05-10  00:00:01.1234567 +05:10);

Si el argumento datepart es TZoffset (tz) y el argumento date no es un tipo de datos datetimeoffset, se devolverá NULL.

Si date es smalldatetime, los segundos se devuelven como 00.

Si el tipo de datos del argumento date no contiene la datepart especificada, se devolverá el valor predeterminado de datepart.

Por ejemplo, el valor predeterminado de año-mes-día de cualquier tipo de datos date es 1900-01-01. La instrucción siguiente tiene argumentos de la parte de fecha para datepart, un argumento de hora para date y devuelve 1900, 1, 1, 1, 2.

SELECT DATEPART(year, '12:10:30.123')
    ,DATEPART(month, '12:10:30.123')
    ,DATEPART(day, '12:10:30.123')
    ,DATEPART(dayofyear, '12:10:30.123')
    ,DATEPART(weekday, '12:10:30.123');

El valor predeterminado hora-minuto-segundo para el tipo de datos time es 00:00:00. La instrucción siguiente tiene argumentos de la parte de hora para datepart, un argumento de fecha para date y devuelve 0, 0, 0.

SELECT DATEPART(hour, '2007-06-01')
    ,DATEPART(minute, '2007-06-01')
    ,DATEPART(second, '2007-06-01');

Las fracciones de segundo se devuelven como se indica en la instrucción siguiente:

SELECT DATEPART(millisecond, '00:00:01.1234567'); -- Returns 123
SELECT DATEPART(microsecond, '00:00:01.1234567'); -- Returns 123456
SELECT DATEPART(nanosecond,  '00:00:01.1234567'); -- Returns 123456700

Se puede utilizar DATEPART en las cláusulas de lista de selección, WHERE, HAVING, GROUP BY y ORDER BY. En SQL Server 2008, DATEPART convierte implícitamente los literales de cadena como tipos datetime2. Cuando utilice DATEPART con DATEADD, evite las conversiones implícitas de literales de cadena. Para obtener más información, vea DATEADD (Transact-SQL).

En el ejemplo siguiente se devuelve el año de base. El año de base es útil para calcular fechas. En el ejemplo siguiente, la fecha se especifica como un número. Observe que SQL Server interpreta 0 como el 1 de enero de 1900. 

SELECT DATEPART(year, 0), DATEPART(month, 0), DATEPART(day, 0);
-- Returns: 1900    1    1 */
¿Te ha resultado útil?
(Caracteres restantes: 1500)

Adiciones de comunidad

AGREGAR
© 2013 Microsoft. Reservados todos los derechos.