La base de données Oracle utilise l'horodatage (horodatage) comme type de date et d'heure. Lorsqu'il s'agit de problèmes de date et d'heure, il est souvent nécessaire de convertir l'horodatage en un format de date et d'heure lisible par l'homme. Dans cet article, nous verrons comment les horodatages Oracle sont convertis en différents formats de date et d'heure.
Nous pouvons utiliser la fonction intégrée d'Oracle to_char() pour convertir l'horodatage en chaîne datetime. Le premier paramètre de la fonction to_char() est l'horodatage qui doit être converti et le deuxième paramètre est la représentation sous forme de chaîne du format de date et d'heure cible.
Par exemple, pour convertir un horodatage en chaîne datetime au format 'AAAA-MM-JJ HH24:MI:SS', vous pouvez utiliser le code suivant :
SELECT to_char(TIMESTAMP '2021-08-31 12:00:00', 'YYYY-MM-DD HH24:MI:SS') AS datetime_string FROM dual;
Le résultat devrait ressembler à ceci :
DATETIME_STRING ------------------- 2021-08-31 12:00:00
L'heure Unix est le nombre de secondes entre le 1er janvier 1970 00:00:00 UTC et l'heure spécifiée. Dans Oracle, nous pouvons convertir l'horodatage en heure Unix en utilisant le code suivant :
SELECT (TO_TIMESTAMP('1970-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS') - TIMESTAMP '2021-08-31 12:00:00') * 24 * 60 * 60 AS unix_time FROM dual;
Expliquez ce code. Tout d’abord, nous utilisons la fonction TO_TIMESTAMP() pour convertir la chaîne « 1970-01-01 00:00:00 » en un type d’horodatage. Ensuite, nous soustrayons l'horodatage spécifié de cet horodatage (voici « 2021-08-31 12:00:00 ») pour obtenir un décalage horaire (durée). Enfin, multipliez ce décalage horaire par 24 * 60 * 60, qui est le nombre de secondes dans une journée, pour obtenir l'heure Unix correspondante.
Le résultat de sortie du code ci-dessus doit être un entier représentant le nombre de secondes entre le 1er janvier 1970 00:00:00 UTC et l'heure spécifiée.
Si nous voulons convertir l'heure Unix en horodatage, nous pouvons utiliser le code suivant :
SELECT TO_TIMESTAMP('1970-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS') + NUMTODSINTERVAL(1630425600, 'SECOND') AS timestamp FROM dual;
Dans le code ci-dessus, nous utilisons la fonction TO_TIMESTAMP() pour convertir la chaîne '1970- 01-01 00:00:00' est converti en type d'horodatage. Nous utilisons ensuite la fonction NUMTODSINTERVAL() pour convertir l'heure Unix (ici 1630425600) en un type d'intervalle. Enfin, ajoutez l'horodatage et l'intervalle de temps pour obtenir l'horodatage correspondant à l'heure Unix.
Le résultat de sortie doit être une valeur de type horodatage, représentant la date et l'heure correspondant à l'heure Unix.
Résumé
Cet article présente la méthode de conversion d'horodatage Oracle, qui peut convertir les horodatages en différents formats de date et d'heure. Grâce à ces méthodes, nous pouvons traiter plus facilement les problèmes de date et d’heure.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!