0

我需要在查询之间使用从日期到日期的条件从数据库中检索数据,

我的问题是,

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'

它怎么可能..

我的查询有什么问题...

对不起,我的英语很差...

先感谢您...

4

4 回答 4

1

日期字符串具有语法YYYY-MM-DD而不是DD-MM-YYYY

select * from Master 
where `Date` between '2013-08-01' and '2013-08-30'
于 2013-08-03T11:49:21.593 回答
0

您将寻找适用于您的格式的查询?(dd-mm-yy) 转换为所需的格式!

http://www.w3schools.com/sql/func_convert.asp

105 = dd-mm-yy

SELECT * FROM Master

WHERE CONVERT(date, Date, 105) BETWEEN '01-08-13' 和 '30-08-13'

请注意日期列的数据类型选择,有或没有时间、日期或年份等,请不要将 varchar 用于日期...知道仅调用日期列可能会造成混淆 Date ...与大写/小写保持一致。

于 2013-08-03T12:33:09.813 回答
0

为此,您可以使用

select * from Master where Date >='01-08-2013' and dateadd(dd,1,'30-08-2013')
于 2013-08-03T11:54:38.320 回答
0

您必须将字符串转换为日期。 此页面向您展示如何在 mysql 中执行此操作,这是您已标记的内容。对于主题行中的 sql server,请使用此页面

然后你对你的第二次尝试做一个轻微的修改。代替

and EntryDate <= the end date

你要

and EntryDate < the day after the end date

这会处理任何时间组件。在您的情况下可能无关紧要,但这是一个养成的好习惯。

于 2013-08-03T11:57:29.663 回答