Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

एक एसक्यूएल सर्वर 2005 एक्सप्रेस डेटाबेस में डेटा के साथ यूटीसी में सभी डेटाटाइम कॉलम को कैसे परिवर्तित करें?

यह मानते हुए कि आप यूटीसी और उस समय क्षेत्र के बीच ऑफसेट जानते हैं जिसमें डेटा संग्रहीत है, यह बहुत आसान है:

DECLARE @offset INT;
SET @offset = <offset>;
UPDATE table SET col = DATEADD(HOUR, @offset, col);

ध्यान दें कि नकारात्मक या सकारात्मक हो सकता है, मुझे नहीं पता कि आप ग्रीनविच के किस पक्ष में हैं।

बेशक यह और अधिक जटिल हो जाता है यदि आप ऐसे समय क्षेत्र में हैं जो डेलाइट सेविंग टाइम देखता है; इस मामले में आपको अधिक विस्तृत समाधान की आवश्यकता हो सकती है जैसे कैलेंडर तालिका का उपयोग करना। यह विशेष रूप से जटिल है यदि आपका डेटा जॉर्ज बुश द्वारा अमेरिकी डीएसटी नियमों को बदलने से पहले विस्तारित हो जाता है, उदाहरण के लिए। मेरे पास काफी समय पहले का एक लेख जो उपयोगी हो सकता है ; एक और हालिया श्रृंखला यहाँ है:

साथ ही अगर आपका कोई डेटा स्प्रिंग फॉरवर्ड/फॉल बैक डे पर 12:00 AM और 2:00 AM के बीच उस विंडो में आता है, जहां मुझे कभी भी यकीन नहीं होता कि इसे बदलना सही है क्योंकि यह चेंजओवर का दिन है या नहीं बदलना ऐसा इसलिए है क्योंकि यह दोपहर 2 बजे से पहले है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मेरा बायां जुड़ाव नल वापस क्यों नहीं कर रहा है?

  2. क्लाउड-आधारित SQL सर्वर प्रदर्शन निगरानी को समझना

  3. पंक्ति मानों को संयोजित करें T-SQL

  4. SQL सर्वर डेटाबेस में सभी विदेशी कुंजी बाधाओं को कैसे निष्क्रिय करें - SQL सर्वर / TSQL ट्यूटोरियल भाग 77

  5. SQL सर्वर कुंडी - अन्य कुंडी के बारे में जानने के लिए