আপনি যদি সমস্ত সারি নির্বাচন করতে চান যেখানে DATETIME কলামের DATE অংশটি একটি নির্দিষ্ট আক্ষরিক সাথে মেলে তবে আপনি এটি এর মতো করতে পারবেন না:
WHERE startTime = '2010-04-29'
কারণ মাইএসকিউএল একটি তারিখ এবং একটি DATETIME সরাসরি তুলনা করতে পারে না। মাইএসকিউএল যা করে, এটি প্রদত্ত তারিখের আক্ষরিক সময় '00: 00: 00 'এর সাথে প্রসারিত করে। সুতরাং আপনার অবস্থা হয়ে যায়
WHERE startTime = '2010-04-29 00:00:00'
অবশ্যই আপনি যা চান না!
শর্তটি একটি ব্যাপ্তি এবং তাই এটি পরিসীমা হিসাবে দেওয়া উচিত। বিভিন্ন সম্ভাবনা রয়েছে:
WHERE startTime BETWEEN '2010-04-29 00:00:00' AND '2010-04-29 23:59:59'
WHERE startTime >= '2010-04-29' AND startTime < ('2010-04-29' + INTERVAL 1 DAY)
প্রথমটি ভুল হওয়ার পক্ষে একটি ছোট্ট সম্ভাবনা রয়েছে - যখন আপনার DATETIME কলামটি সাবসেকেন্ড রেজোলিউশন ব্যবহার করে এবং সেখানে 23:59:59 + অ্যাপসিলন এ অ্যাপয়েন্টমেন্ট থাকে। সাধারণভাবে আমি দ্বিতীয় রূপটি ব্যবহার করার পরামর্শ দিই।
উভয় ভেরিয়েন্টগুলি স্টার্টটাইমে একটি সূচক ব্যবহার করতে পারে যা টেবিলটি বড় হওয়ার পরে গুরুত্বপূর্ণ হয়ে উঠবে।