sql >> Database teknologi >  >> RDS >> Oracle

Sådan returneres brøkdele sekunder fra en Datetime-værdi i Oracle

Når du bruger Oracle Database, kan du bruge TO_CHAR(datetime) funktion til at returnere forskellige dele af en datetime-værdi, inklusive brøksekunder.

For at returnere brøkdelen af ​​sekunder fra en datetime-værdi, skal du bruge FF formatelement.

Eksempel

Her er et eksempel til demonstration:

SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'FF')
FROM DUAL;

Resultat:

123456789

Det er også muligt at begrænse præcisionen ved at tilføje et tal til FF del:

SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'FF5')
FROM DUAL;

Resultat:

12345

Nummeret kan være 1 til 9 .

Sæt sekunddelen foran

I ovenstående eksempler returnerede jeg kun brøkdelen af ​​sekunder og intet andet.

Vi kan inkludere sekunddelen såvel som brøksekunderne. For at gøre dette skal du bruge SS . Vi kan også bruge X for at angive radix-tegnet (det symbol, der bruges til at adskille heltalsdelen fra brøkdelen):

SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL;

Resultat:

37,123456789

Mens du udtrykkeligt kunne angive dit eget radix-karakter – for eksempel et punktum (. ), X formatelement kan være nyttigt til portering på tværs af forskellige sprog/territorier.

Da jeg kørte ovenstående eksempler, min NLS_TERRITORY parameter blev sat til AUSTRALIA , hvilket resulterede i, at radix-karakteren var et punktum.

Her er, hvad der sker, når jeg ændrer min NLS_TERRITORY parameter til GERMANY :

ALTER SESSION SET NLS_TERRITORY = 'GERMANY';

SELECT 
    TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL;

Resultat:

37,123456789

Nu er radix-tegnet et komma.

Det er faktisk NLS_NUMERIC_CHARACTERS parameter, der angiver, hvilket tegn der bruges til radix-tegnet. Ændring af NLS_TERRITORY parameter ændrer implicit NLS_NUMERIC_CHARACTERS parameter. Du kan også eksplicit opdatere NLS_NUMERIC_CHARACTERS parameter, hvis du foretrækker det, i hvilket tilfælde din NLS_TERRITORY parameter forbliver uændret.

Se Liste over DateTime Format Elements i Oracle for en komplet liste over formatelementer, der kan bruges til at formatere datetime-værdier.


  1. Sådan laver du en forespørgsel med group_concat i sql server

  2. hvad er escape-sekvensen for bindestreg (-) i PostgreSQL

  3. Afkort (ikke runde) decimaler i SQL Server

  4. Opret en sammenkædet server i SQL Server (T-SQL-eksempel)