Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment renvoyer des fractions de seconde à partir d'une valeur Datetime dans Oracle

Lorsque vous utilisez Oracle Database, vous pouvez utiliser le TO_CHAR(datetime) fonction pour renvoyer diverses parties d'une valeur datetime, y compris les fractions de seconde.

Pour renvoyer la partie secondes fractionnaires à partir d'une valeur datetime, utilisez le FF élément de format.

Exemple

Voici un exemple pour illustrer :

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

Résultat :

123456789

Il est également possible de limiter la précision en ajoutant un nombre au FF partie :

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

Résultat :

12345

Le nombre peut être 1 à 9 .

Ajoutez la partie des secondes

Dans les exemples ci-dessus, je n'ai renvoyé que la fraction de seconde et rien d'autre.

Nous pouvons inclure la partie des secondes ainsi que les fractions de secondes. Pour cela, utilisez le SS . Nous pouvons également utiliser X pour spécifier le caractère de base (le symbole utilisé pour séparer la partie entière de la partie fractionnaire) :

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

Résultat :

37.123456789

Bien que vous puissiez fournir explicitement votre propre caractère de base - par exemple, un point (. ), le X L'élément de format peut être utile pour le portage dans différentes langues/territoires.

Lorsque j'ai exécuté les exemples ci-dessus, mon NLS_TERRITORY le paramètre a été défini sur AUSTRALIA , ce qui fait que le caractère de base est un point.

Voici ce qui se passe lorsque je modifie mon NLS_TERRITORY paramètre en GERMANY :

ALTER SESSION SET NLS_TERRITORY = 'GERMANY';

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

Résultat :

37,123456789

Maintenant, le caractère de base est une virgule.

C'est en fait le NLS_NUMERIC_CHARACTERS paramètre qui spécifie quel caractère est utilisé pour le caractère de base. Cependant, changer le NLS_TERRITORY paramètre modifie implicitement le NLS_NUMERIC_CHARACTERS paramètre. Vous pouvez également mettre à jour explicitement le NLS_NUMERIC_CHARACTERS paramètre si vous préférez, auquel cas votre NLS_TERRITORY paramètre restera inchangé.

Voir la liste des éléments de format Datetime dans Oracle pour une liste complète des éléments de format pouvant être utilisés pour formater les valeurs datetime.