दिनांक-समय सीमाओं के साथ काम करते समय यह बहुत आम है कि आप एक ऐसी श्रेणी का उपयोग करते हैं जो शुरुआत में समावेशी और अंत में अनन्य होती है। उदाहरण के लिए:
(using ISO8601 formatting)
Start End
2013-04-29T01:00:00Z - 2013-04-29T02:00:00Z
2013-04-29T02:00:00Z - 2013-04-29T03:00:00Z
एक मान सीमा में होता है जब यह प्रारंभ से कम या बराबर होता है, और अंत से अधिक (लेकिन बराबर नहीं) होता है। ऊपर के उदाहरण में, 02:00
दूसरी श्रेणी के अंतर्गत आता है, पहले वाला नहीं। दूसरे शब्दों में:
Start <= value < End
या समकक्ष,
Start <= value AND End > value
गणित में, इंटरवल नोटेशन का उपयोग करते हुए , इसे "आधा खुला" अंतराल के रूप में जाना जाता है।
[Start, End)
01:59:59
. जैसे मान का उपयोग करने के विचार से यह हमेशा एक बेहतर तरीका है . विचार करें कि क्या मुझे End - Start
घटाना है एक अवधि पाने के लिए। मुझे उम्मीद है कि उत्तर एक घंटा होगा, 59 मिनट और 59 सेकंड नहीं।
अधिकांश उदाहरण शब्दों का उपयोग करते हैं Start/End
, लेकिन कभी-कभी आप देखेंगे Begin/End
या Start/Stop
. व्यक्तिगत रूप से, मुझे लगता है कि जब आपके पास एक समावेशी/अनन्य श्रेणी है तो उपयोग करने के लिए शब्दों का सबसे अच्छा सेट Start/Until
है . इसमें दोनों शब्दों का 5 वर्ण होने का अतिरिक्त लाभ है, वर्णानुक्रम में पंक्तिबद्ध करना, और स्पष्ट रूप से यह बताना कि अंतिम तिथि अनन्य है।
साथ ही, जब आप अलग-अलग घटनाओं के बारे में बात कर रहे हों, तो आपको समय क्षेत्र के बारे में भ्रम को रोकने के लिए अपना समय यूटीसी के रूप में रिकॉर्ड करना चाहिए। यह स्थानीय अनुप्रयोगों के लिए और भी महत्वपूर्ण है, क्योंकि कई समय क्षेत्र दिन के उजाले बचत संक्रमणों से गुजरते हैं। आप नहीं चाहते कि डेटाबेस में आपके द्वारा रिकॉर्ड किए गए मान अस्पष्ट हों। MySQL में, आप TIMESTAMP
. का उपयोग कर सकते हैं डेटा प्रकार यह सुनिश्चित करने के लिए कि मान UTC के रूप में संग्रहीत हैं, या आप DATETIME
. का उपयोग कर सकते हैं डेटा प्रकार यदि आप सुनिश्चित कर सकते हैं कि आप अपने एप्लिकेशन कोड में UTC मानों के साथ काम कर रहे हैं।