आपका प्रस्तावित समाधान सही है। या अधिक सटीक रूप से, यह कई सही कार्यान्वयनों में से एक है। निम्न में से कोई भी काम करेगा:
- यूटीसी टाइमस्टैम्प को एक फ़ील्ड में स्टोर करें, ऑफ़सेट को दूसरे में स्टोर करें।
- स्थानीय टाइमस्टैम्प को संगृहीत करें एक फ़ील्ड में, ऑफ़सेट को दूसरे में संग्रहीत करें।
- स्थानीय
date
स्टोर करें एक फ़ील्ड में, और एकtime with time zone
स्टोर करें दूसरे में। (हालांकिtime with time zone
आमतौर पर हतोत्साहित किया जाता है...) - यूटीसी टाइमस्टैम्प को एक फ़ील्ड में और स्थानीय टाइमस्टैम्प को दूसरे फ़ील्ड में स्टोर करें।
अब तक का सबसे आसान पहला है, जिसे आप पहले ही प्रस्तावित कर चुके हैं।
मैं टाइमस्टैम्प को text
. में संग्रहीत करने से बचूंगा फ़ील्ड, क्योंकि वे बहुत कुशलता से खोजने योग्य नहीं होते हैं।
यह भी ध्यान दें - यदि आप SQL सर्वर पृष्ठभूमि से आ रहे हैं, तो आपको इसका datetimeoffset
याद हो सकता है टाइप करें, जो स्थानीय डेटाटाइम को स्टोर करता है और फ़ील्ड में ऑफ़सेट करता है, और इंडेक्सिंग के दौरान यूटीसी समकक्ष का उपयोग करता है। यह सोचना आम बात है कि पोस्टग्रेज और MySQL का timestamp with time zone
एक ही व्यवहार होगा, लेकिन वे नहीं करते। वे बस सत्र . का उपयोग करते हैं UTC से/में बदलने के लिए समय क्षेत्र। SQL सर्वर में सत्र समय क्षेत्र और इस प्रकार विसंगति की कोई अवधारणा नहीं है।
पोस्टग्रेज डॉक्स के इस भाग को पढ़ना सुनिश्चित करें ।