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.