Question

I ai colonne last_update_date défini comme champ de DATE

Je veux obtenir du temps en millisecondes.

À l'heure actuelle je:

TO_CHAR(last_update_date,'YYYY-DD-MM hh:mi:ss am')

Mais je veux millisecondes aussi bien.

Je googlé un peu et penser les champs de DATE n'auront pas millisecondes. seuls les champs de TIMESTAMP seront.

Y at-il moyen d'obtenir millisecondes? Je n'ai pas l'option pour changer le type de données pour le champ.

Pas de solution correcte

Autres conseils

champs DATE sur Oracle stocker uniquement les données jusqu'à une seconde donc il n'y a aucun moyen de fournir quoi que ce soit plus précis que cela. Si vous voulez plus de précision, vous devez utiliser un autre type, comme TIMESTAMP.

est un lien vers une autre question concernant la date SO Oracle et la précision du temps.

Comme le dit RC, le type DATE prend en charge qu'une granularité à la seconde.

Si la conversion à TIMESTAMP est vraiment pas une option, alors que diriez-vous l'ajout d'une colonne numérique qui contient seulement les millisecondes?

Cette option serait plus lourd à traiter qu'une colonne TIMESTAMP, mais il pourrait être réalisable si la conversion du type n'est pas possible.

Dans une situation similaire où je ne pouvais pas changer les champs d'une table, (ne pouvait pas se permettre de « casser » un logiciel tiers), mais nécessaire sous-deuxième précision, j'ai ajouté un 1: 1 table d'appoint, et un après déclencheur d'insertion sur la table d'origine pour afficher l'horodatage dans la table supplémentaire.

Si vous avez seulement besoin de connaître l'ordre des enregistrements ajouté dans la même seconde, vous pouvez faire la même chose, en utilisant uniquement une séquence en tant que source de données pour le champ supplémentaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top