我的目的就是 从6个dropdownlist中提取出起始和终止时间的年月日  从而实现指定时间段查询sql server数据库中的信息
可是老是出错 我试了两种方法
一是 直接用字符串 如下 但总是提示说between附近有语法错误 
string ST_datefrom = YearFormList.SelectedValue.ToString ()  + "-" + MouthFromList.SelectedValue .ToString() + "-" + DayFromList.SelectedValue .ToString();//起始年月日string ST_dateto = YearToList.SelectedValue.ToString() + "-" + MouthToList.SelectedValue.ToString() + "-" + DayToList.SelectedValue.ToString();//终止年月日ST_selsql = ST_selsql + "and dtt between '"+ST_datefrom+"'and'"+ST_dateto+"'";//后来 我干脆直接将 两个字符串转换成date time 格式    可是又总是提示说转换成datetime时候不被识别
DateTime dt= Convert.ToDateTime(ST_datefrom );
DateTime dt1 = Convert.ToDateTime(ST_dateto);
string ST_selsql = "select * from  View_Person where  dtt  between   'dt' and 'dt1'";
急啊  到底怎么办啊 

解决方案 »

  1.   

    什么数据库?
    不同数据库表示时间的字符串方法不同Access数据库:
    WHERE MyTable.MyDateTime BETWEEN #{0}# AND #{1}#Oracle数据库:
    where a.mydatetime between to_date('2005-3-25 10:45','yyyy-mm-dd hh24:mi')
     and to_date('2005-4-30 7:30','yyyy-mm-dd hh24:mi')SQL Server:
    WHERE (MyDateTime BETWEEN '2007-01-06' AND '2007-01-06')还有要注意空格。
      

  2.   

    sql server数据库 
    我自己指定两个时间段可以实现 如between '2007-01-06' AND '2007-01-06' 就是换成两个字符串 不行   将两个字符串转换成datetime 也不行 
    用断点 查看 显示 如'2007-01-06' 这样一个时间 被转换成了 0001-1-1 00:00:00
      

  3.   

    我觉得主要问题是转datetime的问题
    调试看看
    ST_datefrom ST_dateto格式对不
      

  4.   

    sqlcmd = string.Format("SELECT * FROM A WHERE DT BETWEEN '{0}' AND '{1}'", dtStart.ToString("yyyy-MM-dd 00:00:00"), dtEnd.ToString("yyyy-MM-dd 00:00:00"))
    这样不行?
      

  5.   

    sql server 的sql语句用convert进行转换,如下:string dataStr1="2009-10-12";string dataStr2="2010-03-20";string sql=" select * from table where field between Convert(datetime,'" + dateStr1+ "') to Convert(datetime,'" + dateStr2+ "') ";
      

  6.   

    用六楼的代码,提示:注意SQL Server中
    EXEC执行业务层提交的语句时在字符串的处理问题。
    例如:convert(datetime,'2010-01-05')    成功执行。
    那么前台提交的时候  convert(datetime,'''2010-01-05''')   成功执行
      

  7.   

    建议用:select * from View_Person where dtt > 'dt 00:00:00' and dtt < 'dt1 23:59:59'这样Access和SQL都支持
      

  8.   

    SQL查询应该不会出错吧。。
    估计是取的值是错的
    不知道你是怎么取的,考虑下用控件
    用空间就是 STRING SDATA=控件.VALUE
    取的就是时间了
      

  9.   

    非常 感谢各位  
    SQL查询不会出错  自己指定日期也不会出错  试了N种方法都告失败  最后不得已 使用了强数据集  基本没写SQL语句  成功了