A continuación hay dos funciones que se pueden usar para devolver la porción de segundos de un valor de fecha y hora en Oracle Database.
El EXTRACT()
Función
El EXTRACT(datetime)
La función se utiliza para extraer varias partes de fecha y hora de un valor de fecha y hora. Esto incluye la parte de los segundos.
He aquí un ejemplo:
SELECT
EXTRACT(SECOND FROM TIMESTAMP '2035-01-01 10:15:37')
FROM DUAL;
Resultado:
37
Es el SECOND
palabra clave que extrae la parte de segundos del valor de fecha y hora. Esto incluirá cualquier fracción de segundo:
SELECT
EXTRACT(
SECOND FROM TIMESTAMP '2035-01-01 10:15:37.123456789'
)
FROM DUAL;
Resultado:
37.123456789
Podemos obtener otras partes de la fecha cambiándola a la palabra clave relevante. Por ejemplo, YEAR
, MONTH
, HOUR
, MINUTE
, etc.
También podemos usar la función con otros valores de fecha y hora, como DATE
.
El TO_CHAR(datetime)
Función
También podemos usar el TO_CHAR(datetime)
funcionan como un método alternativo para obtener el componente de segundos de un valor de fecha y hora.
Esta función acepta el valor de fecha y hora o intervalo como primer argumento y un modelo de formato como segundo argumento. La función luego convierte el valor a un tipo de datos de VARCHAR2
en el formato especificado.
El modelo de formato especifica el formato para el que devolver el valor de fechahora/intervalo. El modelo de formato consta de uno o más elementos de formato. Esto nos permite diseñar cuidadosamente los resultados para reflejar nuestro formato deseado.
Si solo queremos devolver los segundos, podemos usar uno de los elementos de formato que devuelve ese componente.
Hay algunos elementos de formato diferentes que podemos usar al devolver el componente de segundos de un valor de fecha y hora.
El más obvio es el SS
elemento de formato:
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SS')
FROM DUAL;
Resultado:
37
Como podemos ver, el SS
El elemento de formato devuelve solo la parte de los segundos, pero no los segundos fraccionarios.
Segundos fraccionarios
Si queremos incluir las fracciones de segundo, podemos usar el FF
elemento de formato. También podemos usar X
para especificar el carácter de raíz (el símbolo utilizado para separar la parte entera de la parte fraccionaria):
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL;
Resultado:
37.123456789
También es posible limitar la precisión agregando un número al FF
parte:
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF5')
FROM DUAL;
Resultado:
37.12345
El número puede ser 1
a través de 9
.
Si bien podría proporcionar explícitamente su propio carácter radix, por ejemplo, un punto (.
), la X
El elemento de formato puede ser útil para portar a diferentes idiomas/territorios.
Cuando ejecuté los ejemplos anteriores, mi NLS_TERRITORY
el parámetro se estableció en AUSTRALIA
, lo que resultó en que el carácter radix fuera un punto final.
Esto es lo que sucede cuando cambio mi NLS_TERRITORY
parámetro a GERMANY
:
ALTER SESSION SET NLS_TERRITORY = 'GERMANY';
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL;
Resultado:
37,123456789
Ahora el carácter base es una coma.
Segundos después de la medianoche
Podemos usar SSSSS
para devolver los segundos después de la medianoche:
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 00:01:05', 'SSSSS')
FROM DUAL;
Resultado:
00065