2010-07-22 12 views
5

में समय की तुलना SQL सर्वर 2008 में दुनिया के अन्य देश के समय के साथ भारतीय समय की तुलना कैसे करें?SQL सर्वर 2008

मतलब मैं जानना चाहते हैं कि भारत में अपनी मध्य नाइट 1 रहा हूं एसक्यूएल सर्वर के माध्यम से अन्य देशों में समय हो जाएगा 2008

+0

की तरह कुछ आप आप कैसे उपयोग और/या इस जानकारी का उपयोग करेंगे के लिए एक संदर्भ दे सकते हैं? क्या आप कई एसक्यूएल सर्वरों के बीच समय-क्षेत्र अंतर में रुचि रखते हैं, या भौगोलिक स्थिति के लिए समय ऑफसेट देखने का एक तरीका है? –

उत्तर

0
DECLARE @indianTime DATETIME = GETDATE() 
DECLARE @timeZoneOffset SMALLINT = 3 -- or -3 

SELECT DATEADD(hour, @timeZoneOffset, @indianTime) 

अगले MSDN लेख देखें हैं: 1, 2


लेकिन SQL सर्वर 2008 और DateTimeOffset प्रकार का उपयोग करना बेहतर है जो समय क्षेत्र का समर्थन करता है।

तो आप अगले कर सकता है:

SELECT SYSDATETIME(), SYSUTCDATETIME(); 

यूटीसी समय के साथ आप आसानी से किसी भी अन्य देश में समय की गणना कर सकते हैं:

DECLARE @indianTime DATETIME = SYSDATETIMEOFFSET() 
DECLARE @timeZoneOffset NVARCHAR(6) = '-03:00' 

SELECT SWITCHOFFSET(@indianTime, @timeZoneOffset) 
2

SYSUTCDATETIME() पर एक नज़र डालें।

2

SQL Server 2008 DateTimeOffset प्रकार का उपयोग टाइमज़ोन ऑफसेट के साथ दिनांक समय का प्रतिनिधित्व करने के लिए करता है।

SWITCHOFFSET फ़ंक्शन का उपयोग करके आप एक टाइमज़ोन से दूसरे में मूल्यों को रूपांतरित कर सकते हैं।

मौजूदा दिनांक मानों से किसी विशिष्ट टाइमज़ोन के लिए डेटटाइम ऑफ़सेट मान बनाने के लिए, TODATETIMEOFFSET का उपयोग करें।

आप SYSDATETIMEOFFSET का उपयोग कर ऑफ़सेट सहित वर्तमान दिनांक और समय प्राप्त कर सकते हैं।

अंत में, आप डेटटाइम ऑफसेट मानों की तुलना करने के लिए सादा-पुराने DATEDIFF का उपयोग कर सकते हैं और अपना अंतर प्राप्त कर सकते हैं।

भारत में अपना वर्तमान समय प्राप्त करने के लिए और इसे किसी अन्य समय पर स्विच करने के लिए आपको उचित समय ऑफसेट पता होना चाहिए। बयान होगा

DECLARE @localTime DATETIMEOFFSET=SYSDATETIMEOFFSET() 
SELECT @localTime, SWITCHOFFSET(@localTime,'-5:00')