DATETIMEOFFSETFROMPARTS (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Esta función devuelve un valor datetimeoffset para los argumentos de fecha y hora especificados. El valor devuelto tiene una precisión especificada por el argumento precision y un desplazamiento especificado por los argumentos de desplazamiento.

Convenciones de sintaxis de Transact-SQL

Sintaxis

DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )  

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

year
Expresión entera que especifica un año.

month
Expresión entera que especifica un mes.

day
Expresión entera que especifica un día.

hour
Expresión entera que especifica las horas.

minute
Expresión entera que especifica los minutos.

segundos
Expresión entera que especifica los segundos.

fractions
Expresión entera que especifica un valor de fracciones de segundo.

hour_offset
Expresión entera que especifica la parte de hora del desplazamiento de zona horaria.

minute_offset
Expresión entera que especifica la parte de los minutos del desplazamiento de zona horaria.

precisión
Valor literal entero que especifica la precisión del valor datetimeoffset que DATETIMEOFFSETFROMPARTS va a devolver.

Tipos de valores devueltos

datetimeoffset(precision)

Comentarios

DATETIMEOFFSETFROMPARTS devuelve un tipo de datos datetimeoffset totalmente inicializado. Los argumentos de desplazamiento representan el desplazamiento de zona horaria. En el caso de los argumentos de desplazamiento omitidos, DATETIMEOFFSETFROMPARTS supone un desplazamiento de zona horaria de 00:00; en otras palabras, no hay ningún desplazamiento de zona horaria. En el caso de los argumentos de desplazamiento especificados, DATETIMEOFFSETFROMPARTS espera valores para ambos argumentos y ambos valores positivos o negativos. Si minute_offset tiene un valor y hour_offset no tiene ningún valor, DATETIMEOFFSETFROMPARTS generará un error. DATETIMEOFFSETFROMPARTS generará un error si los demás argumentos tienen valores no válidos. Si al menos uno de los argumentos requeridos tiene un valor NULL, DATETIMEOFFSETFROMPARTS va a devolver NULL. Pero si el argumento precision tiene un valor NULL, DATETIMEOFFSETFROMPARTS generará un error.

El argumento fractions depende del argumento precision. Por ejemplo, para un valor precision de 7, cada fracción representa 100 nanosegundos; si precision es 3, cada fracción representa un milisegundo. Para un valor de precision de cero, el valor de fractions también debe ser cero; de lo contrario, DATETIMEOFFSETFROMPARTS generará un error.

Esta función se puede enviar de forma remota a servidores de SQL Server 2012 (11.x) y superiores. No se puede enviar de forma remota a servidores que tengan una versión inferior a SQL Server 2012 (11.x).

Ejemplos

A. Ejemplo sin fracciones de segundo

SELECT DATETIMEOFFSETFROMPARTS ( 2010, 12, 31, 14, 23, 23, 0, 12, 0, 7 ) AS Result;  

El conjunto de resultados es el siguiente:

Result  
----------------------------------
2010-12-31 14:23:23.0000000 +12:00  
  
(1 row(s) affected)  

B. Ejemplo con fracciones de segundo

En este ejemplo se muestra el uso de los parámetros fractions y precision:

  1. Cuando fractions tiene el valor 5 y precision el valor 1, el valor de fractions representa 5/10 de un segundo.

  2. Cuando fractions tiene el valor 50 y precision el valor 2, el valor de fractions representa 50/100 de un segundo.

  3. Cuando fractions tiene el valor 500 y precision tiene el valor 3, el valor de fractions representa 500/1000 de un segundo.

SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 5, 12, 30, 1 );  
SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 50, 12, 30, 2 );  
SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 500, 12, 30, 3 );  
GO  

El conjunto de resultados es el siguiente:

----------------------------------  
2011-08-15 14:30:00.5 +12:30  
  
(1 row(s) affected)  
  
----------------------------------  
2011-08-15 14:30:00.50 +12:30  
  
(1 row(s) affected)  
  
----------------------------------  
2011-08-15 14:30:00.500 +12:30  
  
(1 row(s) affected)  

Vea también

datetimeoffset (Transact-SQL)
AT TIME ZONE (Transact-SQL)