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

Convertir un horodatage Unix en une valeur de date dans Oracle

Dans Oracle Database, nous pouvons utiliser la technique suivante pour renvoyer une date à partir d'une valeur d'horodatage Unix.

L'horodatage Unix (également appelé heure d'époque Unix, heure Unix ou heure POSIX) est le nombre de secondes qui se sont écoulées depuis 00:00:00 jeudi 1er janvier 1970, temps universel coordonné (UTC).

Exemple

Voici un exemple de conversion d'un horodatage Unix en DATE valeur :

SELECT 
    TO_DATE( '1970-01-01', 'YYYY-MM-DD' ) + NUMTODSINTERVAL( 1650321073, 'SECOND' )
FROM DUAL;

Résultat :

18-APR-22

Ici, nous utilisons le TO_DATE() fonction pour construire une date de 1970-01-01. Nous ajoutons ensuite notre horodatage Unix à cette date pour obtenir notre résultat. Dans ce cas, nous utilisons NUMTODSINTERVAL() pour convertir l'horodatage Unix en un interval valeur. Le résultat est une DATE valeur.

Obtenir la date et l'heure

Nous pouvons utiliser le TO_TIMESTAMP() fonction pour générer un timestamp valeur :

SELECT 
    TO_TIMESTAMP( '1970-01-01', 'YYYY-MM-DD' ) + NUMTODSINTERVAL( 1650321073, 'SECOND' )
FROM DUAL;

Résultat :

18-APR-22 10.31.13.000000 PM

Une autre façon de procéder est la suivante :

SELECT TO_CHAR( 
    TO_DATE( '1970-01-01', 'YYYY-MM-DD' ) + numtodsinterval( 1650321073, 'SECOND' ), 
    'YYYY-MM-DD HH24:MI:SS'
    )
FROM DUAL;

Résultat :

2022-04-18 22:31:13

Ici, nous utilisons le TO_CHAR() fonction pour afficher le résultat renvoyé par TO_DATE() dans notre format préféré. Cette fonction renvoie son résultat sous la forme d'un VARCHAR2 valeur.