Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

गैर-अतिव्यापी दिनांक-समय की घटनाओं को डिजाइन करना

दिनांक-समय सीमाओं के साथ काम करते समय यह बहुत आम है कि आप एक ऐसी श्रेणी का उपयोग करते हैं जो शुरुआत में समावेशी और अंत में अनन्य होती है। उदाहरण के लिए:

(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 मानों के साथ काम कर रहे हैं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP में त्रुटि शामिल है पथ नहीं ढूंढें

  2. MySQL NOT NULL बाधा को अनदेखा करता है

  3. MySQL PHP ज़िप कोड तुलना विशेष रूप से दूरी

  4. MySQL कॉलम की परिभाषा कैसे बदलें?

  5. MySQL में एक सबस्ट्रिंग कैसे निकालें