2009-03-26 10 views
21

क्या ओरेकल में कोई फ़ंक्शन बनाया गया है जो किसी दिनांक फ़ील्ड में डाली जाने वाली उच्चतम संभावित तिथि लौटाएगा?आप ओरेकल में अधिकतम संभव तिथि कैसे प्राप्त करते हैं?

+5

क्यों है? यदि आप किसी तालिका में डमी 'हाई-डेट' मान डालना शुरू करते हैं, तो यह ऑप्टिमाइज़र को 'भ्रमित' कर सकता है जो मान लेगा कि आपके पास अगले 8 हजार वर्षों में फैले दिनांक मूल्यों की पूरी श्रृंखला है। –

उत्तर

28
SELECT TO_DATE('31.12.9999 23:59:59', 'dd.mm.yyyy hh24:mi:ss') 
FROM dual 

ध्यान दें कि कम से कम तिथि और अधिक सरल है:

SELECT TO_DATE(1, 'J') 
FROM dual 
+9

मुझे लगता है कि अधिकांश लोगों के उद्देश्यों के लिए 'TO_DATE ('99 99', 'yyyy') 'बहुत कम और स्वीकार्य विकल्प होगा, विशेष रूप से जब तुलना में coalesce nulls का उपयोग करते हैं। – Alex

+1

@Alex: हाँ, लेकिन ओप ने "अधिकतम संभव तिथि" मांगी। – Quassnoi

+1

मुझे पता है। उम्मीद में बस मेरे 2 सेंट जोड़ना यह किसी की मदद करता है। – Alex

1

मैं एक समारोह के बारे में पता नहीं है, लेकिन this article के अनुसार:

ओरेकल 7: 1 जनवरी से, 4712 ईसा पूर्व से 31 दिसंबर, 4712 ईस्वी।
ओरेकल 8: 1 जनवरी, 4712 ईसा पूर्व से 31 दिसंबर, 99 99 ईस्वी तक।
ओरेकल 9: 1 जनवरी, 4712 ईसा पूर्व से 31 दिसंबर, 99 99 ईस्वी तक।
पीएल/एसक्यूएल: 1 जनवरी, 4712 ईसा पूर्व से 31 दिसंबर, 99 99 ईस्वी तक।

6

11g डॉक्स से:

Oracle डाटाबेस, जूलियन युग में दिनांक स्टोर कर सकते हैं 1 जनवरी से 31 दिसंबर के माध्यम से 4712 ईसा पूर्व से लेकर, 9999 सीई (आम युग, या 'ई')।

http://download.oracle.com/docs/cd/B28359_01/server.111/b28318/datatype.htm#i1847

+4

आम युग ... क्या यह "कबुलीजबाब पक्षपातपूर्ण" एडी के लिए राजनीतिक रूप से सही शब्द है? – Thilo

+0

प्रश्न का वास्तविक उत्तर ... जनवरी 1 4712 से 31 दिसंबर 99 99 – Doogle

2

एक और तरीके हैं, सिर्फ मनोरंजन के लिए:

SELECT to_date(5373484, 'J') + (1 - 1/24/60/60) 
    FROM dual; 

SELECT date '9999-12-31' + (1 - 1/24/60/60) 
    FROM dual; 
+0

पहली क्वेरी 'SELECT to_date (5373484,' J ') + (1 - 1/24/60/60) दोहरी से होनी चाहिए; ' –

0

जूलियन प्रारूप (JDDD) अधिकतम ओरेकल तारीख में 2086307365.

संबंधित मुद्दे