sql >> Base de Datos >  >> RDS >> Sqlserver

DATETIMEOFFSETFROMPARTS() Ejemplos en SQL Server (T-SQL)

T-SQL tiene una función llamada DATETIMEOFFSETFROMPARTS() que le permite obtener un datetimeoffset valor de las distintas partes separadas de una fecha. Específicamente, devuelve un datetimeoffset valor para la fecha y la hora especificadas y con las compensaciones y la precisión especificadas.

Ejemplos de esta función a continuación.

Sintaxis

La sintaxis es así:

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

donde:

  • Los primeros 7 argumentos son expresiones enteras que especifican esa parte de fecha/hora en particular.
  • El hour_offset El argumento es una expresión entera que especifica la parte de la hora del desplazamiento de la zona horaria.
  • El minute_offset es una expresión entera que especifica la porción de minutos del desplazamiento de la zona horaria.
  • La precision el argumento es un literal entero que especifica la precisión del datetimeoffset valor a devolver. Este valor en realidad especifica la escala (es decir, el número de dígitos a la derecha del lugar decimal).

Ejemplo

Aquí hay un ejemplo de uso.

SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 12, 30, 4 ) 
AS Result;

Resultado:

Result
----------------------------------
2021-05-10 23:35:29.0500 +12:30

Argumentos no válidos

Debe asegurarse de que todos los argumentos sean válidos; de lo contrario, obtendrá un error. Aquí hay un ejemplo de proporcionar una parte de hora fuera de rango (25). La parte de la hora solo puede estar entre 0 y 24.

SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 25, 35, 29, 500, 12, 30, 4 ) 
AS Result;

Resultado:

Cannot construct data type datetimeoffset, some of the arguments have values which are not valid.

Número de argumentos

Debe proporcionar el número correcto de argumentos (10). Si no lo hace, recibirá un error.

SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10 ) AS Result;

Resultado:

The datetimeoffsetfromparts function requires 10 argument(s).

Argumentos nulos

Si alguno de los primeros 9 argumentos es nulo, el resultado es NULL :

SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, NULL, 35, 29, 500, 12, 30, 4 ) 
AS Result;

Resultado:

Result
----------------------------------
NULL

Sin embargo, si el último argumento (de precisión) es nulo, se devuelve un error:

SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 12, 30, NULL ) 
AS Result;

Resultado:

Scale argument is not valid. Valid expressions for data type datetimeoffset scale argument are integer constants and integer constant expressions.

Consulte también Ejemplos de DATETIME2FROMPARTS() en SQL Server (T-SQL) para devolver un datetime2 valor (sin el desplazamiento).