Comercial

Páginas: 6 (1253 palabras) Publicado: 12 de noviembre de 2013
DATEDIFF (Transact-SQL)
SQL Server 2012
Otras versiones
Personas que lo han encontrado útil: 12 de 14 - Valorar este tema

Devuelve el recuento (entero con firma) de los límites datepart que se han cruzado entre los valores startdate y enddate especificados.

Para obtener una introducción de todos los tipos de datos y funciones de fecha y hora de Transact-SQL, vea Tipos de datos yfunciones de fecha y hora (Transact-SQL).

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

DATEDIFF ( datepart , startdate , enddate )

Argumentos

datepart

Es la parte de startdate y enddate que especifica el tipo de límite cruzado. En la siguiente tabla se enumeran los argumentos válidos de datepart. Los equivalentes de variables definidas por el usuario noson válidos.

datepart


Abreviaturas

year


yy, yyyy

quarter


qq, q

month


mm, m

dayofyear


dy, y

day


dd, d

week


wk, ww

hour


hh

minute


mi, n

second


ss, s

millisecond


msmicrosecond


mcs

nanosecond


ns
startdate

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. startdate se resta de enddate.

Para evitar ambigüedades, use años de cuatrodígitos. Parta obtener información sobre los años de dos dígitos, vea Establecer la opción de configuración del servidor Fecha límite de año de dos dígitos.
enddate

Vea startdate.

Tipo devuelto

int
Valor devuelto

Cada datepart y sus abreviaturas devuelven el mismo valor.

Si el valor devuelto está fuera del intervalo para int (de -2.147.483.648 a +2.147.483.647), se devuelveun error. Para millisecond, la diferencia máxima entre startdate y enddate es de 24 días, 20 horas, 31 minutos y 23.647 segundos. Para second, la diferencia máxima es de 68 años.

Si startdate y enddate tienen asignado solo un valor de tiempo y datepart no es un datepart de tiempo, se devuelve 0.

Un componente de ajuste de zona horaria de startdate o endate no se utiliza para calcular el valordevuelto.

Puesto que smalldatetime solo es preciso hasta los minutos, cuando se use un valor smalldatetime para startdate o enddate, los segundos y milisegundos siempre se establecen en 0 en el valor devuelto.

Si solo se asigna un valor de tiempo a una variable de un tipo de datos de fecha, el valor de la parte de la fecha que falta se establece en el valor predeterminado: 1900-01-01. Sisolo se asigna un valor de fecha a una variable de un tipo de datos de fecha u hora, el valor de la parte de la hora que falta se establece en el valor predeterminado: 00:00:00. Si startdate o enddate tienen solo una parte de hora y el otro solo una parte de la fecha, las partes de la hora que y la fecha que faltan se establecen en los valores predeterminados.

Si startdate y enddate son de tiposde datos de fecha diferentes y uno tiene más partes de hora o precisión de fracciones de segundo que el otro, las partes que faltan del otro se establecen en 0.
Límites de datepart

Las siguientes instrucciones tienen el mismo valor startdate y el mismo valor endate. Esas fechas son adyacentes y difieren y tienen una diferencia horaria de 0,0000001 segundos. La diferencia entre startdate yendate en cada instrucción cruza un límite de calendario u hora de su datepart. Cada instrucción devuelve 1. Si se utilizan años diferentes en este ejemplo y si tanto startdate como endate están en la misma semana del calendario, el valor devuelto para week será 0.

SELECT DATEDIFF(year, '2005-12-31 23:59:59.9999999'

, '2006-01-01 00:00:00.0000000');

SELECT DATEDIFF(quarter, '2005-12-31...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • comercial
  • comercial
  • Comercial
  • comercial
  • comercial
  • comercial
  • comercial
  • comercial

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS