Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como retornar segundos fracionários de um valor de data e hora no Oracle


Ao usar o Oracle Database, você pode usar o TO_CHAR(datetime) função para retornar várias partes de um valor de data e hora, incluindo os segundos fracionários.

Para retornar a parte segundos fracionários de um valor datetime, use o FF elemento de formato.

Exemplo


Segue um exemplo para demonstrar:
SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'FF')
FROM DUAL;

Resultado:
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', 'FF5')
FROM DUAL;

Resultado:
12345

O número pode ser 1 até 9 .

Prepare a parte dos segundos


Nos exemplos acima, retornei apenas a parte dos segundos fracionários e nada mais.

Podemos incluir a parte dos segundos, bem como os segundos fracionários. Para fazer isso, use o SS . 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

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.

Na verdade, é o NLS_NUMERIC_CHARACTERS parâmetro que especifica qual caractere é usado para o caractere radix. No entanto, alterar o NLS_TERRITORY parâmetro altera implicitamente o NLS_NUMERIC_CHARACTERS parâmetro. Você também pode atualizar explicitamente o NLS_NUMERIC_CHARACTERS se preferir, nesse caso seu NLS_TERRITORY parâmetro permanecerá inalterado.

Consulte Lista de elementos de formato de data e hora no Oracle para obter uma lista completa de elementos de formato que podem ser usados ​​para formatar valores de data e hora.