2010-06-01 13 views
10

में टाइमस्टैम्प कॉलम से समय अंश निकालें वर्तमान में मैं ओरेकल में टाइमस्टैम्प कॉलम से समय भाग निकालने के लिए MyTimeStampField-TRUNC(MyTimeStampField) का उपयोग कर रहा हूं।ओरेकल

SELECT CURRENT_TIMESTAMP-TRUNC(CURRENT_TIMESTAMP) FROM DUAL 

यह रिटर्न

+00 13: 12: 07,100729

यह मेरे लिए ठीक काम करता है, एक टाइमस्टैम्प क्षेत्र से समय भाग को निकालने के लिए, लेकिन मैं अगर सोच रहा हूँ ऐसा करने के लिए एक बेहतर तरीका है (ORACLE के अंतर्निहित फ़ंक्शन का उपयोग कर सकता है)?

उत्तर

7

EXTRACT() फ़ंक्शन के बारे में क्या?

+4

निकालने समारोह उपयोग करते हैं, 'की तरह का चयन करें निकालने (CURRENT_TIMESTAMP से इस घंटे) कुछ लिखा जाना चाहिए || ':' || एक्सट्रैक्ट (CURRENT_TIMESTAMP से मिनट) || ':' || एक्स्ट्राक्ट (CURRENT_TIMESTAMP से दूसरा) डुएल से; 'यह वास्तव में उपयोग की जाने वाली विधि के साथ अधिक कुशल है? – RRUZ

+0

@RRUZ शायद टाइमरपार्ट में केवल 1 अंक होने पर अग्रणी शून्य भी जोड़ सकते हैं: चुनें LPAD (एक्स्ट्राक्ट (CURRENT_TIMESTAMP से HOUR), 2, '0') || ':' || एलपीएडी (एक्सट्रैक्ट (CURRENT_TIMESTAMP से मिनट), 2, '0') || ':' || एलपीएडी (एक्सट्रैक्ट (CURRENT_TIMESTAMP से दूसरा), 2, '0') डुएल से; –

6

तुम हमेशा की तरह कुछ कर सकता है:

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

मेरा मानना ​​है कि इस टाइमस्टैम्प के साथ साथ ही काम करेंगे।

0

मुझे लगता है कि प्रश्न में विधि दोनों उत्तरों की तुलना में कम और तेज है। क्योंकि इसमें केवल दो गणित परिचालन शामिल हैं और कोई जटिल पार्सिंग, स्वरूपण और रूपांतरण शामिल नहीं है।

2

दोहरी से TO_DATE (TO_CHAR (SYSDATE, 'hh24: mi: ss'), 'hh24: mi: ss') का चयन करें। यह वास्तविक से 1hour कम के लिए टाइमस्टैम्प देता है।

1

यह आपकी मदद कर सकते हैं:

Select EXTRACT(HOUR FROM (SYSDATE - trunc(sysdate)) DAY TO SECOND) From dual; 
-2
select hour(CURRENT_TIMESTAMP) 
+2

एसओ में आपका स्वागत है। हो सकता है कि आप अपने उत्तर को बेहतर तरीके से निर्दिष्ट कर सकें कि प्रश्न के समाधान के साथ-साथ आपके कोड को सही तरीके से प्रारूपित करने के लिए सहायता अनुभाग का पालन करना बेहतर है। –

2

तुम बस चाहते हैं तो तारीख

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

का उपयोग करें और अगर आप सिर्फ समय चाहते हैं तो का उपयोग

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

मापदंडों बना रहे हैं सभी बदल गए

'DD-MM-YYYY' 

और

'hh24:mi:ss' 
+0

तो अंतिम कथन उपर्युक्त कथन के लिए होगा ILECT (कलाकार (दिनांक के रूप में SYSDATE), 'डीडी-एमएम-वाईवायवाई'), to_char (कास्ट (दिनांक के रूप में SYSDATE), 'hh24: mi: ss') डुएल से –