2010-12-21 11 views
18

मुझे उस समय की गणना करने की आवश्यकता है जब उपयोगकर्ता साइट पर खर्च करता है। लॉगआउट समय और लॉगिन समय के बीच यह अंतर है जैसे मुझे "श्री एक्स ने 4 घंटे और 43 मिनट ऑनलाइन बिताए"। तो 4 घंटों और 43 मिनटों को स्टोर करने के लिए मैंने इसे इस तरह घोषित किया: duration समय नहीं शून्यMySQL भंडारण अवधि का समय - डेटाटाइप?

क्या यह स्टोर करने के लिए यह वैध या बेहतर तरीका है? मुझे डीबी में स्टोर करने की ज़रूरत है क्योंकि मेरे पास अन्य गणनाएं हैं जिन्हें मुझे अन्य उपयोग मामलों के लिए उपयोग करने की आवश्यकता है।

उत्तर

32

इसे सेकंड की पूर्णांक संख्या के रूप में संग्रहीत करने का सबसे अच्छा तरीका होगा।

  • UPDATE स्वच्छ और सरल होगा - अर्थात duration = duration + $increment
  • रूप ट्रिस्ट्रम बताया गया है, TIME क्षेत्र का उपयोग करने के लिए limitations हैं - जैसे "TIME मान '-838:59:59' से '838:59:59'"
  • प्रारूपों को प्रदर्शित करने के दिन/घंटे/मिनट/सेकेंड हार्डकोड नहीं होंगे।
  • आपके अन्य निष्पादन निष्पादन लगभग पूर्ण रूप से स्पष्ट होगा जब पूर्णांक "सेकंड की संख्या" फ़ील्ड के साथ काम करते समय स्पष्ट हो जाएगा।
+0

ठीक है, धन्यवाद, धन्यवाद, धन्यवाद। – Juds

+1

मैं निश्चित रूप से 'TIME' के साथ जाऊंगा। मैं ऑनलाइन किसी पंक्ति में 34 दिन खर्च करने वाले किसी के बारे में नहीं सोच सकता। यदि ऐसा है, तो मैं इस दुर्लभ मामले को एक त्रुटि में चलाने के लिए तैयार हूं। 'अद्यतन' विवरण आसानी से 'ADDTIME() 'का उपयोग करके किया जा सकता है। इसके साथ आप सेकेंड में स्थानांतरित किए बिना 30 मिनट और 23 सेकंड भी जोड़ सकते हैं। कुछ भी कड़ी मेहनत नहीं की जाती है, आप हमेशा 'TIME_TO_SEC() 'कर सकते हैं - यदि आपको वास्तव में इसकी आवश्यकता है (मुझे क्या संदेह है)। – Gerald

0

मैं समय का उपयोग नहीं करता क्योंकि आप 24 घंटे तक सीमित रहेंगे। सबसे आसान बस मिनटों में एक पूर्णांक स्टोर करना होगा (या आपको आवश्यक संकल्प के आधार पर सेकंड)।

+0

पूर्णांक 4 घंटे, 45 मिनट 32 सेकेंड की तरह सटीक समय नहीं देगा जब तक कि मैं सेकंड में स्टोर नहीं करता? मैं सीधे डीबी में एक्स घंटे, एक्स मिनट के रूप में प्रविष्टि को ऑटो प्रारूपित करने की उम्मीद कर रहा था। (शायद एक्स सेकंड भी जोड़ें) इसे 474747474 सेकेंड के रूप में संग्रहीत करने के बजाय फिर एक मानव पठनीय रूप में रूपांतरण की आवश्यकता होती है। – Juds

+0

@ जुड्स मैं तर्क दूंगा कि डीबी में स्वरूपित समय अंतराल होने की सुविधा @ ट्रिस्ट्रम और @ रिडिसियो के कई अन्य कारकों से अधिक है। क्यों अंतराल स्वरूपण प्रस्तुति-परत चिंता नहीं होने दें? :) –

+5

समय 24 घंटे तक सीमित नहीं है, ऊपर देखें – Ashley

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