J'ai une table qui contient une colonne d'horodatage d'époque (transaction_date), si j'ai deux lignes et je veux déterminer si elles sont le même jour ; sans les convertir à ce jour en utilisant to_date. comment puis-je faire cela et quelle est la meilleure façon de faire moins d'opérations tout en le déterminant.meilleure façon de déterminer si deux horodatages d'époque sont à la même date dans la base de données oracle
0
A
Répondre
0
En utilisant cette transformation d'horodatage à jour, vous pouvez comparer
SELECT
* (all but transaction_date),
(EXTRACT (DAY FROM (transaction_date))*24*60*60) transaction_day
FROM yourtable;
1
Une époque « horodatage » est un nombre qui devrait être généré en convertissant la date à UTC
(si elle a un fuseau horaire) et subtracting the epoch à donne un nombre de secondes (ou millisecondes) depuis l'époque.
Sans la conversion à une date, vous pouvez simplement diviser par le nombre de secondes (ou milli-secondes) dans une journée et tronquer pour obtenir le nombre de jours écoulés depuis l'époque puis comparer ces valeurs:
SELECT TRUNC(transaction_date/(24 * 60 * 60)) FROM your_table
Si les valeurs données par deux lignes ont un nombre de jours identique depuis l'époque, elles sont le même jour.