asp.net - SQL सर्वर में उपयोग के लिए मैं समय की एक साधारण तालिका कहां प्राप्त कर सकता हूं?




sql-server timezone (4)

इसे ओएस से प्राप्त करें

इसमें आपने टैग किया है कि इस asp.net ने इस उदाहरण को देखा है कि समय क्षेत्र कैसे गणना करें

मुझे बस समय क्षेत्र की एक एसक्यूएल तालिका बनाने की जरूरत है - इस बिंदु पर, एक ऑनलाइन फार्म पर ड्रॉप-डाउन सूची को पॉप्युलेट करने की मेरी केवल एक आवश्यकता है मैं आईएसओ कोड, नाम, यूटीसी ऑफसेट और शायद प्रतिनिधि शहरों की एक सूची के लिए कॉलम के साथ कुछ सरल कल्पना कर रहा हूं। मैंने सोचा था कि मैं आसानी से कॉपी और पेस्ट करने के लिए कुछ ऑनलाइन खोज पा पाऊंगा, लेकिन कुछ भी पता लगाने में सक्षम नहीं हुआ।

मुझे इस प्रश्न के द्वारा टीज़ डाटाबेस के लिए निर्देशित किया गया था, जो द्विआधारी रूप में है और मुझे जो आवश्यकता है उसके लिए अधिकाधिक लगता है। वैकल्पिक रूप से मैं इसे TimeAndDate.com जैसी साइटों से एक साथ टुकड़ा कर सकता हूं , लेकिन ऐसा लगता है कि ज़रूरी होना चाहिए जितना अधिक काम करना।

या मैं इस बारे में गलत तरीके से जा रहा हूं - जैसे मुझे सर्वर की ओएस से यह जानकारी मिलनी चाहिए?


क्या आप नेट 3.5 पर हैं? आप आसानी से .NET 3.5 में समयक्षेत्र की सूची प्राप्त कर सकते हैं और फिर अपने SQL सर्वर डेटाबेस में वह जानकारी संग्रहीत कर सकते हैं (या कम से कम जो कुछ भी आपको इसकी आवश्यकता है)।

आप उपलब्ध सभी समयक्षेत्रों को पुनरावृति कर सकते हैं और .NET 3.5 को ज्ञात करते हैं और संबंधित जानकारी को किसी SQL सर्वर तालिका में संग्रहीत कर सकते हैं:

ReadOnlyCollection<TimeZoneInfo> timeZones = TimeZoneInfo.GetSystemTimeZones();

foreach (TimeZoneInfo timeZone in timeZones)
{
    // store whatever you need to store to a SQL Server table
}

न घुलनेवाली तलछट


मैंने एक कदम आगे marc_s का उत्तर दिया - यहाँ एक सामान्य समयक्षेत्र तालिका और .net कोड बनाने के लिए कोड है जो प्रत्येक यूटीसी रिकॉर्ड के लिए सम्मिलित करता है:

--TSQL TO CREATE THE TABLE
CREATE TABLE [dbo].[TimeZones] (
[TimeZoneID]           INT              IDENTITY (1, 1) NOT NULL,
[DisplayName]  VARCHAR(100) NOT NULL,
[StandardName]        VARCHAR (100)    NOT NULL,
[HasDST]    BIT  NOT NULL,
[UTCOffset]      INT NOT NULL
CONSTRAINT [PK_TimeZones] PRIMARY KEY CLUSTERED ([TimeZoneID] ASC)
);
GO

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

System.Collections.ObjectModel.ReadOnlyCollection<TimeZoneInfo> timeZones = TimeZoneInfo.GetSystemTimeZones();

foreach (TimeZoneInfo timeZone in timeZones)
{
    Response.Write("INSERT INTO TimeZones (DisplayName, StandardName, HasDST, UTCOffset) VALUES ('" + timeZone.DisplayName.Replace("'", "''") + "', '" + timeZone.StandardName.Replace("'", "''") + "', '" + timeZone.SupportsDaylightSavingTime + "', '" + timeZone.BaseUtcOffset + "')" + Environment.NewLine);
} 

उम्मीद है की यह मदद करेगा


सभी समयक्षेत्र की सूची यहां दी गई है:

select * from sys.time_zone_info

का आनंद लें!





timezone