这是一个查询:
String query1 =“select * from Demand_Register,其中Payment_Date> ='”+ fromDate +“'和Payment_Date< ='”+ toDate +“'”;
如果toDate = 23/6/2011且fromDate = 25/6/2011则它会检索日期24和25的数据而不是23?如果toDate = 23/6/2011且fromDate = 23/6/2011,那么它什么都不会检索。
提前致谢。
答案 0 :(得分:0)
Access / Jet / ACE中的日期不是作为文本表示存储,而是存储为double,其中整数部分是自18/30/1899起的日期,小数部分是时间。所有日期都有时间部分。
如果您一直使用Now()来填充相关字段,或者在字段中存储0以外的时间部分,则不会得到完全匹配。相反,你必须使用它:
toDate>=#23/6/2011# AND toDate<#24/6/2011# AND fromDate>=#25/6/2011# AND fromDate<#26/6/2011#
这将包含2011年6月23日当天的toDate
值,但有时间部分。
现在,我想问你为什么在字段名toDate
和fromDate
中包含0以外的时间部分 - 如果它们是真正的日期,它们应该只有时间部分。如果您在Access或Jet / ACE SQL中填充这些日期,您可以使用Date()函数,它只返回日期部分,而不是Now(),它返回当前日期和时间。
要修复具有时间值的数据,而该数据应仅为日期值,只需运行更新即可将字段更改为整数值,例如SET toDate = Int(toDate)
。