C#。net某时间段内的数据查询
我写的查询代码:select*fromXX表where时间between'"+TextBox1.Text+"'%y'"+DropDownList6+"'%Mand'"+T...
我写的查询代码:select * from XX表 where 时间 between '" + TextBox1.Text + "' %y '" + DropDownList6 + "' %M and '" + TextBox4.Text + "' %y '" + DropDownList8 + "' %M
时间的数据类型为DATETIME,问要怎么改才能让它正确。 展开
时间的数据类型为DATETIME,问要怎么改才能让它正确。 展开
5个回答
展开全部
你这样:
string sql=string.Format(
"select * from XX表 where 时间 between '{0}' and '{1}'",
new DateTime(int.Parse(TextBox1.Text), int.Parse(DropDownList6.SelectedValue),1).ToString("yyyy-MM-dd 00:00:00"),
new DateTime(int.Parse(TextBox4.Text), int.Parse(DropDownList8.SelectedValue),GetMaxDay(int.Parse(TextBox4.Text), int.Parse(DropDownList8.SelectedValue))).ToString("yyyy-MM-dd 23:59:59"))
//函数--获得某年某月的最大天数
public int GetMaxDay(int year,int month) {
bool isLeap=DateTime.IsLeapYear(year);
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 4:
case 6:
case 9:
case 11:
return 30;
case 2:
return isLeap?29:28;
default:
return 0;
}
}
string sql=string.Format(
"select * from XX表 where 时间 between '{0}' and '{1}'",
new DateTime(int.Parse(TextBox1.Text), int.Parse(DropDownList6.SelectedValue),1).ToString("yyyy-MM-dd 00:00:00"),
new DateTime(int.Parse(TextBox4.Text), int.Parse(DropDownList8.SelectedValue),GetMaxDay(int.Parse(TextBox4.Text), int.Parse(DropDownList8.SelectedValue))).ToString("yyyy-MM-dd 23:59:59"))
//函数--获得某年某月的最大天数
public int GetMaxDay(int year,int month) {
bool isLeap=DateTime.IsLeapYear(year);
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 4:
case 6:
case 9:
case 11:
return 30;
case 2:
return isLeap?29:28;
default:
return 0;
}
}
追问
试过了,还是不对
追答
你思路是不是查询 2012年1月 到 2013年4月
你把它转换为 2012-01-01 00:00:00 与 2013-04-30 23:59:59之间
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from XX表 where 时间 between '2012-1-10' and '2013-1-10' 这个格式没错 你查年月 就把 日 都改成 1 不就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先取到时间值,拼成string,强转DateTime,不然数据库无法比较
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把条件改成如下格式就可以了
where 时间 between '2010/1'+"%y-%M" and '2014/12'+"%y/%M"
where 时间 between '2010/1'+"%y-%M" and '2014/12'+"%y/%M"
更多追问追答
追问
试过了不行
追答
不好意思啊 有点写错了
其中"%y-%M"改成%y/%M"
改成如下
where 时间 between '2010/1'+"%y/%M" and '2014/12'+"%y/%M"
下面这种方法我测试过的
你把你写的完整的贴出来看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没说数据库类型,不好给具体脚本,但是必须将string,强转DateTime
追问
就像上图那样的4个Text分别表示年月年月(string),数据表是datetime,我知道要强制转换,但就是这里一直错
追答
你用给的ylq1045 方法可以啊,没必要你输入年后再加 y m y m的,那太麻烦了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询