我需要使用查询之间的条件从数据库中检索数据,
我的查询是,
select * from Master where Date between '01-08-2013' and '30-08-2013'
但它从表中检索了所有数据...
我只需要那个日期的数据..
我尝试了另一个,比如,
select * from PatientMaster where EntryDate >= '01-08-2013' and EntryDate<= '30-08-2013'
它的可能性......
我的查询有什么问题......
抱歉,我的英语非常糟糕......提前谢谢你......
答案 0 :(得分:1)
日期字符串的语法为YYYY-MM-DD
而不是DD-MM-YYYY
select * from Master
where `Date` between '2013-08-01' and '2013-08-30'
答案 1 :(得分:0)
为此你可以使用
select * from Master where Date >='01-08-2013' and dateadd(dd,1,'30-08-2013')
答案 2 :(得分:0)
您必须将字符串转换为日期。 This page向您展示如何在mysql中执行此操作,这是您标记的内容。对于主题行中的sql server,请使用this page。
然后你稍微修改你的第二次尝试。而不是
and EntryDate <= the end date
你想要
and EntryDate < the day after the end date
负责任何时间组件。在你的情况下可能无关紧要,但这是一个很好的习惯。
答案 3 :(得分:0)
您是否正在寻找适用于您的格式的查询? (DD-MM-YY) CAST到所需的格式!
http://www.w3schools.com/sql/func_convert.asp
105 = dd-mm-yy
SELECT * FROM Master
在'01 -08-13'和'30 -08-13'之间转换(日期,日期,105)
关注日期列的数据类型选择, 有或没有时间,日或年第一等,请不要使用varchar 对于约会...... 知道只为日期调用日期列可能会令人困惑... 与高/小的情况一致。