फैबियो वास्तव में सही नहीं है, अगर इसमें घंटे, मिनट और सेकंड शामिल किए जाएंगे
where date >= '2013-06-01' and date <= '2013-06-06'
आंतरिक रूप से बन जाता है
where date >= '2013-06-01 00:00:00' and date <= '2013-06-06 00:00:00'
तो आप वास्तव में 2013-06-06 के केवल 1 सेकंड का चयन करें, नहीं पूरा दिन!
निश्चित रूप से बीच के साथ भी। 2013-06-06 का पूरा दिन पाने के लिए आपको लिखना होगा
where date >= '2013-06-01' and date <= '2013-06-06 23:59:59'
या
where date BETWEEN '2013-06-01' AND '2013-06-06 23:59:59'
आगे बढ़ें, इसे स्वयं आज़माएं (या इसे sqlfiddle में लाइव देखें ):
create table foo (my_date date, my_timestamp timestamp, my_datetime datetime);
insert into foo values ('2013-06-06', '2013-06-06 12:23:34', '2013-06-06 13:35:48');
select * from foo
where
my_date <= '2013-06-06'; /*returns row*/
select * from foo
where
my_timestamp <= '2013-06-06'; /*does NOT return row*/
select * from foo
where
my_datetime <= '2013-06-06'; /*does NOT return row*/
select * from foo
where
my_timestamp <= '2013-06-06 23:59:59'; /*returns row*/
select * from foo
where
my_datetime <= '2013-06-06 23:59:59'; /*returns row*/