怎样根据时间查询数据库

来源:百度知道 编辑:UC知道 时间:2024/05/14 17:53:49
Access数据库的时间格式2009-3-7,我想用sum统计记录,条件用like 2009-3(只有年和月)
string str1=当前年份;
string str2=当前月份;
string sql1="select sum(任何一个数值字段) from [表1] where 日期 like str1 + '-' + str2 + '-' + '%'";
像上面那样,查不出个结果。。。
string sql1 = "select sum(收入金额) from [真实财产] WHERE (((Year([日期]))=str1) AND ((Month([日期]))=str2))";
OleDbCommand zsr1 = new OleDbCommand(sql1, myConnection);
float zsr2 = (float)zsr1.ExecuteScalar();//这一行提示:至少一个参数未指定值
label2.Text = zsr2.ToString();

根据时间的话要用datediff()函数
select sum(任何一个数值字段) from [表1] where datediff(month, "2009-3-7",日期)=0
函数中第一个参数是时间比较的单位,可以是year,month, day等,第一个参数是开始时间,第二个参数是结束时间,结果就是开始时间与结束时间的差值
如果想按你的方法的话
string sql1 = "select sum(收入金额) from [真实财产] WHERE (((Year([日期]))="+str1+") AND ((Month([日期]))="+str2+"))"; 其中参数要使用字符串连接的形式传入

例如:查询2009年3月时

SELECT 表1.*
FROM 表1
WHERE (((Year([日期]))=2009) AND ((Month([日期]))=3));