SECOND función escalar
La función SECOND devuelve la parte correspondiente a los segundos de un valor con segundos fraccionarios opcionales.
El esquema es SYSIBM.
- expresión
- expresión debe ser una expresión que devuelva un valor de uno de los siguientes tipos de datos integrados: una hora, una marca de tiempo, una cadena de caracteres, una cadena gráfica o un tipo de datos numéricos.
- Si la expresión es un carácter o una cadena gráfica, no debe ser un CLOB o DBCLOB, y su valor debe ser una representación de cadena válida de una hora o marca de tiempo con una longitud real que no sea superior a 255 bytes. Para conocer los formatos válidos de las representaciones de cadenas de tiempos y marcas de tiempo, consulte Representaciones de cadenas de valores de fecha y hora.
- Si expression es un número, debe ser una duración de tiempo o marca de tiempo. Para conocer los formatos válidos de duración de hora y marca de tiempo, consulte Operandos de fecha y hora.
- constante-entera
- entero-constante debe ser una constante entera que represente la escala para la parte de segundos fraccionarios de la expresión. El valor debe estar comprendido entre 0 y 12. Si no se especifica un número entero constante, el resultado no incluye segundos fraccionarios.
Si expression es una marca de tiempo con zona horaria, o una representación de cadena válida de una marca de tiempo con zona horaria, el resultado se determina a partir de la representación UTC del valor de fecha y hora.
El resultado de la función con un sólo argumento es un entero grande. El resultado de la función con dos argumentos es DECIMAL(2+ s, s ) donde s es el valor de la constante entera.
El resultado puede ser nulo; si el primer argumento es nulo, el resultado es el valor nulo.
Las demás normas dependen del tipo de datos del argumento:
- Si el argumento es una hora, una marca de tiempo o una representación de cadena de una hora o una marca de tiempo:
- El resultado es la parte de segundos del valor (0 a 59) y los segundos fraccionarios que se incluyan en el valor. Si se especifica el segundo argumento, el resultado incluye dígitos de constante entera de la parte de segundos fraccionarios del valor, cuando corresponda. Si no hay fracciones de segundo en el valor, se devuelven ceros.
- Si el argumento es una duración de hora o una duración de indicación de fecha y hora:
- El resultado es la parte de segundos del valor (de -99 a 99) y los segundos fraccionarios que se incluyan en el valor. Si se especifica el segundo argumento, el resultado incluye dígitos de constante entera de la parte de segundos fraccionarios del valor, cuando corresponda. Si no hay fracciones de segundo en el valor, se devuelven ceros. Un resultado distinto de cero tiene el mismo signo que la expresión.
SECOND(:TIME_DUR) SECOND(RECEIVED)SELECT SECOND('2003-01-02-20.10.05.123456'),
SECOND('2003-01-02-12.10.05.123456-08:00'),
SECOND('2003-01-03-05.10.05.123456+09:00')
FROM SYSIBM.SYSDUMMY1;Para cada invocación de la SEGUNDA función en esta instrucción SELECT, el resultado es 5.Cuando el argumento de entrada contiene una zona horaria, el resultado se determina a partir de la representación UTC del valor de entrada. Las representaciones de cadena de una marca de tiempo con una zona horaria en la instrucción SELECT tienen todas la misma representación UTC: 2003-01-02-20.10.05.123456. La segunda parte de la representación UTC es 5.
SELECT SECOND(CURRENT_TIMESTAMP(3),3)
FROM SYSIBM.SYSDUMMY1;La sentencia SELECT devuelve un valor DECIMAL(5,3) que se basa en la marca de tiempo actual y podría ser algo así como 54.321.