主要是针对时间类型的数据,数据库里面我的时间是这样的2010/5/19 0:00:0,datatime类型。在aspx页面上拉一个textbox控件和一个button控件,textbox控件输入要检索的内容。假如我要按月份检索,SQL语句该怎么写?例如我要2月份的资料,可以这样写:select * from table1 where 时间 like '%02%'但是如果我要1月份的资料,这样写却不行:select * from table1 where 时间 like '%01%'这样会把2010年的全部检索出来,不符合要求,应该怎么样写呢?当然,如果我要按日来检索资料,也会产生类似的情况,应该怎么办呢?大侠们都是怎么样实现时间检索的?或者数据库里是怎么保存时间数据的?谢谢哥哥们。
解决方案 »
- 有没有win8 metro风格的第三方控件?
- 批量更新数据库的问题 麻烦大家了~
- 我把 SQL2000数据库 误操作 用很早的备份给还原了。数据还能找回来不了??
- Thread类没有继承CriticalFinalizerObject, _Thread。所以里面少了好多方法。ResetAbort,Suspend等,是保护文件自己又不能改,怎么办呢?
- framwork 2.0和1.1 的兼容性问题,急啊!
- 请教richEditControl中的table操作
- 如何根据进程名取pid c#
- C# 怎么做出Visual Studio的效果?
- 如何产生一个pdf文件?
- 我的toolBar好难看啊,谁有漂亮一点的
- 懂VC的请进,重谢100分,要快;帮忙改一句引用外部dll的代码。
- wpf image控件 twoway 问题
但更好的方法是根据文本构造日期范围,起始日期和结束日期,然后:
select * from table1 where 时间 >= '2010-02-01' And 时间 < '2010-03-01',至于时间范围怎么构造,你可以自己定义。
结束时间=DateTime.NOw;
然后 "select ...where 时间>=" + "N'开始时间"' + " and 时间< 'N" + 结束时间 + "'" ...
上面写错了,更正一下
你可知道'%01%'中的%代表着什么吗??
代表着模糊查询,只要是带01的就符合条件,就全给你查出来,所以你想要一月份的就把2010的全给你查出来了。你问题出在,你把整个日期当成了查询条件。没有指出是年,月还是日。
这个问题应该先把月提出来作为条件使用。
给你个方法,你先试试。select * from table1 where month(‘时间’) ='01'
where month(日期) like '%9%' or year(日期) like '%2009%' or day(日期) like '%3%'
例如:在dropdownlist的textchange事件里加
if(dropdownlist.value="月份")
{
//选择查询条件
//正则限制textbox格式,^\d{4}\-\d{1,2}-\d{1,2}$,用户现在只能输入2010-01-09形式的字符串
}
再在button事件里加判断
if(dropdownlist.value="月份")
{
//
}