用DELPHI7.0,数据库存储在SQL Server中,我想对表中的日期进行模糊查询:比如说,在文本框中输入‘2003’,则显示03年的所有记录;同样,输入‘2003-8-13’,则显示此日期的所有记录。我写的SQL语句如下:
'select * from 测试参数 where 测试日期 Like '''+EdtTestDate.Text+'%'+'''' 其中edttestdate为日期变量的输入框;但是,实际运行时,输入一个日期如‘2003’或‘2003-8-13’,却不能返回任何结果;如果进行完全匹配的查询(将like 改成‘=’,去掉‘%’),则查询正常。另外,在SQL Server中,‘测试日期’一项,采用的是smalldatetime类型。是不是数据库类型设置的问题?如果对日期型变量进行模糊查询,应该如何改进我的SQL语句?请各位高手指教!
'select * from 测试参数 where 测试日期 Like '''+EdtTestDate.Text+'%'+'''' 其中edttestdate为日期变量的输入框;但是,实际运行时,输入一个日期如‘2003’或‘2003-8-13’,却不能返回任何结果;如果进行完全匹配的查询(将like 改成‘=’,去掉‘%’),则查询正常。另外,在SQL Server中,‘测试日期’一项,采用的是smalldatetime类型。是不是数据库类型设置的问题?如果对日期型变量进行模糊查询,应该如何改进我的SQL语句?请各位高手指教!
http://expert.csdn.net/Expert/topic/2189/2189086.xml?temp=.347027
我在那里已经说过了
里去试你的sql语句
一般对日期模糊查询,我一般用两个maskedit,sql语句用between……and……
其实,对于日期常用的就是“BETWEEN BDATE AND EDATE”,直接用DATETIMEPICKER控件;如果你确实想方便客户(他想模糊查询),那就建议你在程序中去拼凑好字符串的样式,再去LIKE