SELECT CAST(CASE WHEN OLEFLOAT > 0 THEN
OLEFLOAT-2.0
ELSE
2*CAST(OLEFLOAT AS INT) - 2.0 + ABS(OLEFLOAT) END as datetime)
काम करता है? here से
एक OLE स्वचालन तारीख एक फ्लोटिंग प्वाइंट नंबर जिसका अभिन्न अंग से पहले या आधी रात के बाद दिनों की संख्या है, 30 दिसंबर 1899, और जिसका आंशिक घटक पर समय का प्रतिनिधित्व करता के रूप में कार्यान्वित किया जाता है कि दिन 24. उदाहरण के लिए, आधी रात, 31 से विभाजित दिसंबर 1899 1.0 का प्रतिनिधित्व करती है, 6 एएम, 1 जनवरी 1 9 00 का प्रतिनिधित्व 2.25 द्वारा किया गया है; आधी रात, 29 दिसंबर 1899 -1.0 का प्रतिनिधित्व करती है; और 6 एएम, 2 9 दिसंबर 18 99 को -1.25 द्वारा दर्शाया गया है।
कि काफी एक ही सिस्टम एसक्यूएल सर्वर की तरह लगता है का उपयोग करता है जब आप को छोड़कर ऑफसेट 2 से और "नकारात्मक" दिनांकों fiddled जाने की आवश्यकता एक नाव के रूप में एक तारीख डाली। एसक्यूएल सर्वर पीछे की तरफ घट जाएगा। तो -1.25 18:00 है जबकि ओएलई के लिए इसका अर्थ है 06:00।
स्रोत
2010-07-19 00:15:37
इन कॉलमों के उपयोग के आधार पर, मैं उन्हें युगल के बजाय DATETIMEs के रूप में स्टोर करने के इच्छुक हूं। एक डबल कॉलम पर एक सूचकांक बेकार है यदि आपको फ़िल्टर को फ़िल्टरिंग के लिए डेटा को स्पष्ट रूप से परिवर्तित करना है। –