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

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

En SQL Server, DATETIME2FROMPARTS() la función funciona de manera similar a DATETIMEFROMPARTS() función, excepto que acepta 8 argumentos y devuelve un datetime2 valor. El DATETIMEFROMPARTS() La función, por otro lado, acepta solo 7 argumentos y devuelve una fecha y hora valor.

Básicamente, proporciona todas las partes de fecha/hora y esta función devolverá un datetime2 valor basado en las piezas que proporcione.

Sintaxis

Primero, aquí está la sintaxis:

DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision )

Donde cada uno de los primeros 7 argumentos es una expresión entera que especifica esa parte de la fecha. Por ejemplo, year es un número entero que especifica la parte del año de la fecha.

El octavo argumento es una expresión entera que le permite definir la precisión del valor de retorno. Este valor especifica la escala (es decir, el número de dígitos a la derecha del lugar decimal).

Ejemplo

He aquí un ejemplo de uso:

SELECT DATETIME2FROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 4 ) AS Result;

Resultado:

+--------------------------+
| Result                   |
|--------------------------|
| 2021-05-10 23:35:29.0500 |
+--------------------------+

Valores no válidos

Todos los argumentos deben ser valores válidos. Por ejemplo, no puede especificar un mes de 13 o un valor de minutos de 61.

Aquí hay un ejemplo donde especifico un valor de mes de 13:

SELECT DATETIME2FROMPARTS( 2021, 13, 10, 23, 35, 29, 500, 4 ) AS Result;

Resultado:

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

Número de argumentos

También debe proporcionar el número correcto de argumentos (8):

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

Resultado:

The datetime2fromparts function requires 8 argument(s).

Valores nulos

Si proporciona un valor nulo para cualquiera de los primeros 7 argumentos, el resultado es NULL:

SELECT DATETIME2FROMPARTS( 2021, 05, 10, NULL, 35, 29, 500, 4 ) AS Result;

Resultado:

+----------+
| Result   |
|----------|
| NULL     |
+----------+

Sin embargo, proporcionar un valor nulo para el octavo argumento (que especifica la precisión/escala) da como resultado un error:

SELECT DATETIME2FROMPARTS( 2021, 05, 10, 23, 35, 29, 500, NULL ) AS Result;

Resultado:

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