主要是针对时间类型的数据,数据库里面我的时间是这样的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年的全部检索出来,不符合要求,应该怎么样写呢?当然,如果我要按日来检索资料,也会产生类似的情况,应该怎么办呢?大侠们都是怎么样实现时间检索的?或者数据库里是怎么保存时间数据的?谢谢哥哥们。
解决方案 »
- ASP.NET图片预览功能中遇到的脚本问题
- c#中 从表里调值时 如何使用columns
- C#调用存诸过程返回参数问题
- 100分求一播放byte[]型mp3数据的代码!
- 在WindowsFORM 中怎么在C#中用SHELL来打开。EXE文件
- 如何计算一个10的8次方和一个10的12次方的值?
- 怎样判断一个文本框里的值是否数值啊
- 如何编写具有翻页功能的用户自定义控件
- innerhtml 里面的html标记<A HREF="">如何写C#变量?
- 【菜农求救】:关于十进制和十六进制的转换输出问题?
- 懂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="月份")
{
//
}