select cast(日期字段 as datetime)

解决方案 »

  1.   

    where cast(日期字段 as datetime)>'2002-06-03'也可用CONVERT转换
      

  2.   

    在SQL Server上像各位所说的是可以但是在Excel中这样不行啊Where CAST(日期 AS DateTime)>=#2002-6-1#用OleDB连的Excel
      

  3.   

    你问的刚好,我昨天刚做了这个问题:// 获得输入的时间
    string strTimeFirst = txbStarTime.Text.ToString().Trim();
    string strTimeSecond  = txbEndTime.Text.ToString().Trim();// 把开始和结束的时间转化成DateTime形式
    DateTime  dtTimeFirst = System.Convert.ToDateTime(strTimeFirst);
    DateTime  dtTimeSecond = System.Convert.ToDateTime(strTimeSecond);// 比较开始和结束时间是否合乎要求
    // iDayCompare = 0 开始结束时间相等
    // iDayCompare = 1 开始小于结束时间
    // iDayCompare = -1 开始大于结束时间
    // 其他情况则输入数据有问题
    int iDayCompare = System.DateTime.Compare( dtTimeSecond, dtTimeFirst );
    if(  iDayCompare == 1 )
    {
      // 获得开始结束相差的时间
      System.TimeSpan tsDiff = dtTimeSecond - dtTimeFirst;  // 把数据绑定到listBox中
      libTimeDiff.Items.Clear();
      ListItem liTimeDiff=new ListItem();
      liTimeDiff.Text = Convert.ToString( tsDiff.Days );
      liTimeDiff.Value = Convert.ToString( tsDiff.Days );
      libTimeDiff.Items.Add( liTimeDiff );
      libTimeDiff.DataBind();
     }
     else if (iDayCompare == 0 )
     {
      Response.Write("<script>alert('你输入两个相同的日期!')</script>");
     }
     else if (iDayCompare == -1 )
     {
      Response.Write("<script>alert('你输的日期开始时间大于了结束时间!')</script>");
     }
     else
     {
       Response.Write("<script>alert('你输入的开始结束时间有问题,请检查!')</script>"); 
     }= System.Convert.ToDateTime(strTimeFirst);
      

  4.   

    这个问题我也遇到过。Acess数据库。在SQL语句中,用Cdate函数。用法举例如下:WHERE myDate > CDate('2002-02-06')其中myDate是日期型字段。
      

  5.   

    问题没看清楚,不好意思。要把两个字符串在程序中转变成日期再比较,可以用:
    DateTime.Parse(str1)=DateTime.Parse(str2)如果str1="2002-02-06",str2="2002-2-6"
    上面的表达式肯定为真。
      

  6.   

    首先谢谢楼上的几位朋友,但是你们都误解了!
    我并不是说要在应用程序级把待比较的字符串转化成日期型而是需要在读excel的sql语句中实现,比如像
    "select * from table1 where 日期 > #2002-12-5#"由于日期字段填的是文本型的字符串,所以比较时不正确!