time01 := DateTimePicker1.DateTime;
ADODataSet1.Close;
ADODataSet1.CommandText := 'Select * from User_Operation_List Where Opt_Time > time01';
ADODataSet1.Open;其中 Opt_Time是一个Datetime 类型的字段。
帮忙看看在Opt_Time > time01 时到底出了什么问题?thx

解决方案 »

  1.   

    问题在于你的单引号因该放在time01前面然后加上+即
    ADODataSet1.CommandText := 'Select * from User_Operation_List Where Opt_Time >'+ timetostr(time01);
      

  2.   

    为什么要把time01转换为string类型的呢?Opt_Time是一个Datetime类型的字段,可以和String类型的字符串比较吗?
      

  3.   

    ADODataSet1.CommandText := 'Select * from User_Operation_List Where Opt_Time >'+ QuotedStr(timetostr(time01));
    //比较时间最好用datediff函数
      

  4.   

    那是因为你需要输入字符串给sql server。sql server只能接受字符串
      

  5.   

    var
      time01: string;
    begin
      time01 := DateToStr(DateTimePicker1.DateTime);
      ADODataSet1.Close;
      ADODataSet1.CommandText := 'Select * from User_Operation_List Where Opt_Time >'+ time01;
      ADODataSet1.Open;
    end;
      

  6.   


    lzy6204正解。
    需要加引号的说。
      

  7.   

    ADODataSet1.CommandText := 'Select * from User_Operation_List Where Opt_Time >'+ QuotedStr(timetostr(time01));
      

  8.   

    ADODataSet1.CommandText := 'Select * from User_Operation_List Where Opt_Time >'''+ timetostr(time01)+'''';
    以上引号都是单引号。
      

  9.   

    为什么要把time01转换为string类型的呢?Opt_Time是一个Datetime类型的字段,可以和String类型的字符串比较吗?
    ---------------------------------------------
    把time01转换为string类型是为了和前面的字符串连接,Datetime类型不是和字符串比较,要是和字符串比较用'''++'''这种格式.