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

AM/PM sql में बीच का उपयोग करके काम नहीं कर रहा है

आपको बेहतर तरीके से अपनी तिथियों को DATETIME . के रूप में संगृहीत करना चाहिए . जैसा कि आपके पास ये मान हैं, यह पहले से ही दिखाता है कि आपके डेटाबेस फ़ील्ड date के नहीं हैं टाइप करें, जैसे स्ट्रिंग्स को date . में इन्सर्ट करना फ़ील्ड त्रुटि उत्पन्न नहीं करेंगे।

यदि इसे बदलना संभव नहीं है, तो आप STR_TO_DATE . का उपयोग कर सकते हैं समारोह:

SELECT * 
FROM `task` 
WHERE t_status !=3 
AND   STR_TO_DATE('2018-01-19 03:56 PM', '%Y-%m-%d %h:%i %p') BETWEEN
        STR_TO_DATE(t_started_on, '%Y-%m-%d %h:%i %p') AND 
        STR_TO_DATE(t_due_on, '%Y-%m-%d %h:%i %p')

लेकिन यह वास्तव में एक घटिया समाधान है।

फिर भी, केवल एक पंक्ति प्राप्त करने की आपकी अपेक्षा अजीब लगती है। निश्चित रूप से तीसरी पंक्ति आवश्यकता को पूरा करती है, क्योंकि प्रारंभ/देय तिथियां उस तिथि से पहले/बाद की हैं, जिसकी आप जांच कर रहे हैं, चाहे समय का कुछ भी हिस्सा क्यों न हो।

परिशिष्ट

टिप्पणियों में आप कह रहे हैं कि आप एक अलग तर्क लागू करना चाहते हैं। मैं अनुमान कर रहा हूँ आप अलग-अलग दिनांक और समय घटकों की तुलना करना चाहते हैं, और दोनों between . का अनुपालन करना चाहते हैं स्थि‍ति। यह वास्तव में प्रश्न में समझाया जाना चाहिए, क्योंकि वर्तमान में यह निर्दिष्ट नहीं है।

उस स्थिति में, आप DATE_FORMAT . का उपयोग कर सकते हैं केवल समय भाग निकालने के लिए, और उसके साथ शर्त को दोहराएं:

SELECT *,
       STR_TO_DATE(t_started_on, '%Y-%m-%d %h:%i %p'),
       STR_TO_DATE(t_due_on, '%Y-%m-%d %h:%i %p'),
       STR_TO_DATE('2018-01-19 03:56 PM', '%Y-%m-%d %h:%i %p')
FROM `task` 
WHERE t_status !=3 
AND   STR_TO_DATE('2018-01-19 03:56 PM', '%Y-%m-%d %h:%i %p') BETWEEN
        STR_TO_DATE(t_started_on, '%Y-%m-%d %h:%i %p') AND 
        STR_TO_DATE(t_due_on, '%Y-%m-%d %h:%i %p')
AND   DATE_FORMAT(STR_TO_DATE('2018-01-19 03:56 PM', '%Y-%m-%d %h:%i %p'), '%h:%i') BETWEEN
        DATE_FORMAT(STR_TO_DATE(t_started_on, '%Y-%m-%d %h:%i %p'), '%h:%i') AND 
        DATE_FORMAT(STR_TO_DATE(t_due_on, '%Y-%m-%d %h:%i %p'), '%h:%i')

यह क्वेरी परिणाम से 3 पंक्ति को बाहर कर देगी।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Android एप्लिकेशन के साथ Amazon RDS का उपयोग करना

  2. अगर मौजूद है तो MySQL को अपडेट करें

  3. MySQL क्वेरी - दो कारकों के आधार पर डेटा से जुड़ें, फिर मानों के आधार पर डेटा को सॉर्ट करने के तरीके को अनुकूलित करें

  4. Django कोड या MySQL ट्रिगर

  5. किवी के साथ MySQL को पुनः प्राप्त करना