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

Laravel सुवक्ता डेटाटाइम फ़ील्ड से तारीख की तुलना करें

Laravel 4+ आपको ये तरीके प्रदान करता है:whereDay() , whereMonth() , whereYear() (#3946 ) और whereDate() (#6879 )।

वे SQL DATE() करते हैं आपके लिए काम करते हैं, और SQLite के अंतरों को प्रबंधित करते हैं।

आपका परिणाम इस प्रकार प्राप्त किया जा सकता है:

->whereDate('date', '<=', '2014-07-10')

अधिक उदाहरणों के लिए, #3946 का पहला संदेश देखें और यह लारावेल डेली लेख


अपडेट करें: यद्यपि उपरोक्त विधि सुविधाजनक है, जैसा कि अर्थ ने उल्लेख किया है, यह बड़े डेटासेट पर अक्षम है, क्योंकि DATE() SQL फ़ंक्शन को प्रत्येक रिकॉर्ड पर लागू करना होता है, इस प्रकार संभावित अनुक्रमणिका को त्यागना होता है।

तुलना करने के कुछ तरीके यहां दिए गए हैं (लेकिन कृपया नीचे नोट पढ़ें):

->where('date', '<=', '2014-07-10 23:59:59')

->where('date', '<', '2014-07-11')

// '2014-07-11'
$dayAfter = (new DateTime('2014-07-10'))->modify('+1 day')->format('Y-m-d');

->where('date', '<', $dayAfter)

नोट:

  • 23:59:59 ठीक है (अभी के लिए) 1 सेकंड की सटीकता के कारण, लेकिन इस लेख पर एक नज़र डालें:23:59:59 दिन का अंत नहीं है। नहीं, सच में!
  • "शून्य तिथि" मामले को ध्यान में रखें ("0000-00-00 00:00:00")। हालांकि, इन "शून्य तिथियों" से बचा जाना चाहिए, वे बहुत सारी समस्याओं का स्रोत हैं। यदि आवश्यक हो तो फ़ील्ड को खाली करने योग्य बनाएं।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में उपयोगकर्ताओं और प्रमाणीकरण को कैसे प्रबंधित करें

  2. mysql रूट पासवर्ड भूल गया

  3. लेवेनशेटिन विकल्प

  4. क्या आप Doctrine 2 DQL के साथ सबक्वायरी में शामिल हो सकते हैं?

  5. जावा में ओएस स्लीप एंड वेक अप इवेंट का पता लगाएं