2012-05-01 11 views
5

एसक्यूएल सर्वर नौकरियां/अनुसूचियों अमेरिका - अमेरिका बनाम ब्रिटेन डेलाइट सेविंग समायोजनएसक्यूएल सर्वर नौकरियां/अनुसूचियों - बनाम ब्रिटेन डेलाइट सेविंग समायोजन

हम एक ब्रिटेन आधारित सर्वर जो 16 पर किसी SQL एजेंट नौकरी चलाने की आवश्यकता है: 30 (यूएस सेंट्रल टाइम - यह अजीब लग सकता है लेकिन यह कुछ डेटा की उपलब्धता के कारण)। आम तौर पर यह एक समस्या नहीं होगा ब्रिटेन और अमेरिका के बीच समय अंतर 6 घंटे है क्योंकि इसलिए हम 22:30 के लिए हमारा काम अनुसूची।

लेकिन चूंकि ब्रिटेन और अमेरिका मार्च और नवंबर में डेलाइट बचत के लिए अलग-अलग समय में अपने घड़ियों को समायोजित करते हैं, इसलिए 2 सप्ताह की अवधि होती है जब ब्रिटेन और अमेरिका के बीच का समय 5 घंटे होता है।

मैं एक जिस तरह एसक्यूएल सर्वर समय अंतर का यह परिवर्तन की पहचान कर सकता है और उसके बाद काम यह sp_update_schedule की तरह कुछ का उपयोग कर स्वयं है फिर से अनुसूची को लागू करना चाहते हैं।

एक दृष्टिकोण मैं एक अमेरिका आधारित सर्वर पर वर्तमान टाइमस्टैम्प प्राप्त करने के लिए और उसके बाद वर्तमान ब्रिटेन समय के साथ कि तुलना है। समय अंतर 5 घंटे है तो, 21:30 तक काम को पुनर्निर्धारित अगर समय अंतर 6 घंटे तो 22:30 तक काम को पुनर्निर्धारित है।

लेकिन वैसे भी एक और समाधान सुझा सकता है, शायद एक जो यूएस आधारित सर्वर पर वर्तमान टाइमस्टैंप प्राप्त नहीं करेगा और आदर्श रूप से किसी तालिका में डेलाइट बचत समायोजन तिथियों की सूची को स्टोर नहीं करना है। कुछ और गतिशील हो सकता है?

+1

एसक्यूएल के 'GETUTCDATE' उपयोगी हो सकता है – Paddy

उत्तर

3

वास्तव में, ऐसा लगता है कि आप दो व्यवहार्य समाधान उल्लेख किया है की तरह: कि समय क्षेत्र पर एक सर्वर से पूछो या महत्वपूर्ण तारीखों की एक सूची संग्रहीत। नीचे दिए गए पहले लिंक पर पार्टी लाइन क्यों है। आप अपने स्वयं के फ़ंक्शन को कार्यान्वित कर सकते हैं (जिसे या तो तिथियों की सूची स्टोर करना होगा या ऑफसेट के लिए सर्वर से पूछना होगा)। या आप समय क्षेत्र की जानकारी की सार्वजनिक डोमेन सूची प्राप्त कर सकते हैं (जैसा कि नीचे दिए गए दूसरे लिंक पर)। ऐसी कई वेब सेवाएं भी हैं जो ऑफ़सेट लौटाएंगी। ओरेकल लागू करता है कि समय क्षेत्रों के डेटाबेस नामित समय क्षेत्रों के बीच परिवर्तित करने के लिए, इसलिए यदि आप पहले से ही दोनों का समर्थन आप ऐसा कर सकता है।

एक सी # कार्यान्वयन है जिसे आप तीसरे लिंक पर सीएलआर कार्यों में लपेट सकते हैं।

http://blogs.msdn.com/b/sqlprogrammability/archive/2008/03/18/using-time-zone-data-in-sql-server-2008.aspx

http://www.twinsun.com/tz/tz-link.htm

http://timezone.codeplex.com/

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