Abaixo estão duas funções que podem ser usadas para retornar a parte de segundos de um valor de data e hora no Oracle Database.
O EXTRACT() Função
O
EXTRACT(datetime) A função é usada para extrair várias partes de data e hora de um valor de data e hora. Isso inclui a parte dos segundos. Aqui está um exemplo:
SELECT
EXTRACT(SECOND FROM TIMESTAMP '2035-01-01 10:15:37')
FROM DUAL; Resultado:
37
É o
SECOND palavra-chave que extrai a parte dos segundos do valor datetime. Isso incluirá quaisquer segundos fracionários:SELECT
EXTRACT(
SECOND FROM TIMESTAMP '2035-01-01 10:15:37.123456789'
)
FROM DUAL; Resultado:
37.123456789
Podemos obter outras partes da data alterando-a para a palavra-chave relevante. Por exemplo,
YEAR , MONTH , HOUR , MINUTE , etc Também podemos usar a função com outros valores de data e hora, como
DATE . O TO_CHAR(datetime) Função
Também podemos usar o
TO_CHAR(datetime) funciona como um método alternativo para obter o componente de segundos de um valor de data e hora. Esta função aceita o valor datetime ou interval como seu primeiro argumento e um modelo de formato como seu segundo argumento. A função então converte o valor para um tipo de dados de
VARCHAR2 no formato especificado. O modelo de formato especifica o formato para o qual retornar o valor de data/hora/intervalo. O modelo de formato consiste em um ou mais elementos de formato. Isso nos permite elaborar cuidadosamente os resultados para refletir o formato desejado.
Se quisermos retornar apenas os segundos, podemos usar um dos elementos de formato que retornam esse componente.
Existem alguns elementos de formato diferentes que podemos usar ao retornar o componente de segundos de um valor de data e hora.
O mais óbvio é o
SS elemento de formato:SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SS')
FROM DUAL; Resultado:
37
Como podemos ver, o
SS elemento de formato retorna apenas a parte dos segundos, mas não os segundos fracionários. Frações de Segundos
Se quisermos incluir os segundos fracionários, podemos usar o
FF elemento de formato. Também podemos usar X para especificar o caractere radix (o símbolo usado para separar a parte inteira da parte fracionária):SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL; Resultado:
37.123456789
Também é possível limitar a precisão anexando um número ao
FF papel:SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF5')
FROM DUAL; Resultado:
37.12345
O número pode ser
1 até 9 . Embora você possa fornecer explicitamente seu próprio caractere de base – por exemplo, um ponto final (
. ), o X O elemento de formato pode ser útil para portar entre diferentes idiomas/territórios. Quando executei os exemplos acima, meu
NLS_TERRITORY parâmetro foi definido como AUSTRALIA , o que resultou no caractere radix sendo um ponto final. Veja o que acontece quando eu mudo meu
NLS_TERRITORY parâmetro para GERMANY :ALTER SESSION SET NLS_TERRITORY = 'GERMANY';
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL; Resultado:
37,123456789
Agora o caractere radix é uma vírgula.
Segundos depois da meia-noite
Podemos usar
SSSSS para retornar os segundos após a meia-noite:SELECT
TO_CHAR(TIMESTAMP '2035-01-01 00:01:05', 'SSSSS')
FROM DUAL; Resultado:
00065