2012-11-09 16 views
10

मुझे पता है कि एक प्रारूप समय डालने के लिए इस प्रारूप yyyy-mm-dd hh:mm:ss का उपयोग किया जाना चाहिए।SQLite के लिए टाइमज़ोन के साथ डेटाटाइम कैसे सम्मिलित करें?

हालांकि मेरे डेटासेट में टाइमस्टैम्प फ़ील्ड है जो yyyy-mm-dd hh:mm:ss +/-0X:00 जैसा दिखता है, जहां X कई मान ले सकता है और मेरे कंप्यूटर के स्थानीय टाइमज़ोन से अलग है।

SQLite को ऐसी टाइमज़ोन जानकारी के साथ डेटाटाइम फ़ील्ड डालने का सबसे अच्छा तरीका क्या है?

+4

मैं हमेशा ग्रीनविच (यूटीएस + 0) में परिवर्तित समय डालता हूं और डेटाबेस डेटाबेस से पुनर्प्राप्त होने पर इसे स्थानीय समय में परिवर्तित कर देगा। इस तरह आपको डेटाबेस में टाइमज़ोन स्टोर करने की आवश्यकता नहीं है। यदि आपको वास्तव में उस समय के क्लाइंट के टाइमज़ोन को स्टोर करने की आवश्यकता है जो इसे मापता है, तो उसे दूसरे कॉलम में डाल दें। – farfareast

+0

आसान तरीका समय वक्रहर/स्ट्रिंग के रूप में स्टोर करना होगा और फिर –

+2

@EmmanuelN को घुमाने पर समय को गुप्त करना होगा - यह एक भयानक विचार है - यह तिथि/समय के साथ और अधिक कठिन काम करने जा रहा है; हमेशा सर्वोत्तम प्रकार के मूल्यों को स्टोर करें। farfareast बेहतर विचार है; हालांकि, मैं शायद यूटीसी कहूंगा, जिसमें डेलाइट बचत नहीं है (ग्रीनविच के बारे में अनिश्चित)। –

उत्तर

8

SQLite की अंतर्निहित तिथि और समय कार्य समय क्षेत्र जानकारी के बिना केवल टाइमस्टैम्प स्ट्रिंग को समझता है।

आप समय क्षेत्रों को संभालने के लिए चाहते हैं, आप के लिए या तो

  • परिवर्तित एक विशेष समय क्षेत्र (UTC), ताकि आप उन पर SQLite कार्यों का उपयोग कर सकते हैं और उन्हें छँटाई के लिए उपयोग कर सकते हैं करने के लिए सभी timestamps; या
  • वहां समय क्षेत्र जानकारी छोड़ दें, लेकिन सभी कंप्यूटेशंस और सॉर्टिंग को SQL में नहीं बल्कि आपके एप्लिकेशन में सॉर्ट करें।
संबंधित मुद्दे