2010-10-05 15 views
10

मैं कुछ समय के लिए, 2 घंटे, 5 मिनट, 10 सेकंड के लिए, एक mysql डेटाबेस में कुछ के लिए कुछ समय स्टोर करना चाहता हूं। दूसरी ओर सटीकता को प्राथमिकता दी जाती है, लेकिन आवश्यक नहीं है। ऐसा करने के लिए जाने का सबसे अच्छा तरीका क्या है?एक MySQL डेटाबेस में समय पर अवधि को स्टोर करने का सबसे अच्छा तरीका?

+2

उद्देश्य यहां एक अंतर डाल सकता है; यदि सेकंड के पूर्णांक संख्या को संग्रहीत करना आपके लिए पर्याप्त है, तो यह जाने का तरीका हो सकता है। मैंने थोड़ी देर में mysql प्रलेखन की जांच नहीं की है, लेकिन मुझे mysql को टाइमपैन डेटा प्रकार नहीं याद है। – Andrew

+2

मुझे MySQL के विवरण नहीं पता हैं, लेकिन मेरे अनुभव में, यदि आपको केवल "दूसरी" परिशुद्धता की आवश्यकता है, तो कुल सेकेंड को संग्रहीत करना सबसे अधिक समझ में आता है। कोड को पार्स करने के बजाए किसी दिए गए समय प्रारूप पर उस मान को वापस पार्स करना आम तौर पर आसान होता है, पहले एक मध्यस्थ प्रारूप में "00:00:00" जैसी स्ट्रिंग कहें। –

+0

अच्छी बात @Andrew। मैं कुछ उत्तरों को देखने के बाद TIME प्रकार के साथ जाने जा रहा था, लेकिन इस बारे में सोचने के बाद कि एप्लिकेशन में इसे कैसे लागू किया जाएगा, पूर्णांक w/सेकंड अधिक समझ में आता है (कई गणित/तुलना समय के साथ चल रहा है)। – GSto

उत्तर

16

एक MySQL TIME प्रकार '-838: 59: 59' से '838: 59: 59' से समय अवधि को स्टोर कर सकता है - यदि यह आपकी आवश्यक सीमा के भीतर है, और यह उपयोगी होगा कि MySQL इन स्पैनों को मूल रूप से प्रस्तुत करे एचएच: एमएम: एसएस फॉर्म, फिर इसका इस्तेमाल करें।

अन्यथा, मैं सेकंड की संख्या का प्रतिनिधित्व करने के लिए बस एक पूर्णांक प्रकार के साथ जाऊंगा।

3

मुझे बेस इकाइयों के रूप में डेटाबेस में चीजें संग्रहीत करना पसंद है। इस तरह से मैं किसी और चीज में भरोसेमंद और सटीक रूप से परिवर्तित कर सकता हूं जिसे मैं बाद में चाहता हूं।

इस विधि के बारे में आपको चिंता करने की एकमात्र चीज आपकी सटीकता को कम कर रही है। यदि आप क्रॉस कंट्री ट्रिप के लिए यात्रा की दूरी तय कर रहे हैं, तो इंच या सेंटीमीटर जो भी आप खोज रहे हैं वह शायद नहीं हो सकता है।

आपके मामले में, मैं अवधि को सेकंड या मिलीसेकंड के रूप में संग्रहीत करता हूं और वहां से जाता हूं।

1

जैसा कि एंड्रयू कहता है, सेकंड के साथ एक पूर्णांक फ़ील्ड पहले से ही हो सकता है।

यदि डेटा उपलब्ध है, और इसे स्टोर करने के लिए यह समझ में आता है, तो मैं डेटा को दो और MySQL टाइमस्टैम्प में प्रारंभ और समाप्ति समय (बाद में ऑडिटिंग के लिए भी संभवतः) के साथ सहेजता हूं, और वास्तविक अवधि लाने के लिए DATE_DIFF() का उपयोग करता हूं ।

संबंधित मुद्दे

 संबंधित मुद्दे