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

चुनिंदा बयान में यूटीसी से स्थानीय समय में डेटाटाइम कॉलम कनवर्ट करें

आप इसे SQL Server 2008 या उच्चतर पर निम्नानुसार कर सकते हैं:

SELECT CONVERT(datetime, 
               SWITCHOFFSET(CONVERT(datetimeoffset, 
                                    MyTable.UtcColumn), 
                            DATENAME(TzOffset, SYSDATETIMEOFFSET()))) 
       AS ColumnInLocalTime
FROM MyTable

आप कम क्रिया भी कर सकते हैं:

SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), MyTable.UtcColumn) 
       AS ColumnInLocalTime
FROM MyTable

आप जो कुछ भी करते हैं, नहीं - का उपयोग करें तिथियों को घटाने के लिए, क्योंकि ऑपरेशन परमाणु नहीं है, और सिस्टम डेटाटाइम और स्थानीय डेटाटाइम के बीच अलग-अलग समय (यानी, गैर-परमाणु रूप से) की जाँच के बीच दौड़ की स्थिति के कारण आपको अनिश्चित परिणाम मिलेंगे।

कृपया ध्यान दें कि यह उत्तर डीएसटी को ध्यान में नहीं रखता है। यदि आप एक डीएसटी समायोजन शामिल करना चाहते हैं, तो कृपया निम्नलिखित SO प्रश्न भी देखें:

SQL सर्वर में डेलाइट सेविंग टाइम प्रारंभ और समाप्ति फ़ंक्शन कैसे बनाएं



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अल्पविराम से अलग किए गए मान अलग करें और sql सर्वर में तालिका में संग्रहीत करें

  2. एसक्यूएल सर्वर:ड्रॉप टेबल कैस्केड समकक्ष?

  3. SQL सर्वर में दी गई तालिका को संदर्भित करने वाली सभी विदेशी कुंजियाँ लौटाएँ

  4. एक बहु-चरणीय SQL सर्वर एजेंट कार्य बनाएँ (T-SQL)

  5. SQL सर्वर (T-SQL) में डेटाबेस मेल प्रोफ़ाइल हटाएं