web-dev-qa-db-fra.com

Extraire la partie heure de la colonne TimeStamp dans ORACLE

J'utilise actuellement MyTimeStampField-TRUNC(MyTimeStampField) pour extraire la partie heure d'une colonne timestamp dans Oracle. 

SELECT CURRENT_TIMESTAMP-TRUNC(CURRENT_TIMESTAMP) FROM DUAL

Cela retourne

+00 13: 12: 07.100729

Cela fonctionne bien pour moi, pour extraire la partie heure d'un champ d'horodatage, mais je me demande s'il existe un meilleur moyen (d'utiliser peut-être une fonction intégrée d'Oracle) pour le faire?

11
RRUZ

Qu'en est-il de EXTRACT () function?

7
Frank Heikens

Vous pouvez toujours faire quelque chose comme:

select TO_DATE(TO_CHAR(SYSDATE,'hh24:mi:ss'),'hh24:mi:ss') from dual

Je pense que cela fonctionnera également avec les horodatages.

6
LBushkin

Vous voulez juste dater puis utiliser

to_char(cast(SYSDATE as date),'DD-MM-YYYY')

et si vous voulez juste le temps alors utilisez

to_char(cast(SYSDATE as date),'hh24:mi:ss')

les paramètres font tout le changé

'DD-MM-YYYY'

et

'hh24:mi:ss'
2
Amir Md Amiruzzaman

sélectionnez TO_DATE (TO_CHAR (SYSDATE, 'hh24: mi: ss'), 'hh24: mi: ss') dans dual. Cela donne l'horodatage pour 1 heure de moins que le réel.

2
Sagar

Cela peut aider:

Select EXTRACT(HOUR FROM (SYSDATE - trunc(sysdate)) DAY TO SECOND ) From dual;
1
Art

Je pense que la méthode en question est plus courte et plus rapide que dans les deux réponses. Parce que cela implique seulement deux opérations mathématiques et pas d'analyse complexe, le formatage et la conversion.

0
Vadzim