执行以下语句报错:
   ADOquery1.SQL.Add('SELECT * FROM table_name  where date>#2006-6-8 8:32:00# ');
但将Tdatetime改成'yyyy-mm-dd',执行成功:
   ADOquery1.SQL.Add('SELECT * FROM table_name  where date>#2006-6-8# ');
另外:
'SELECT * FROM table_name  where date>#2006-6-8 8:32:00# ' 在ACCESS语法是通过而且有正确数据。
如果将条件放到:adoquery1.Filter:=date>'#2006-6-8 8:32:00#' ,是可以执行成功,现有N个SELECT 需要UNION 起来,用adoquery1.Filter 没办法实现。恳请大虾们出谋解决!小弟先谢过了!

解决方案 »

  1.   

    用参数的形式:
    SELECT * FROM table_name  where date>:temp
    adoquery1.Parameters.ParamByName('temp').Value:=FormatDateTime('yyyy-mm-dd hh:mm:ss',datetimepick1.datetime);
      

  2.   

    俺楼上说的用参数配合FormatDateTime来做。
      

  3.   

    用参数法是可以实现,我现在想统计一个月的日期的记录,每天都有个开始时间后结束时间,本想用字符串拼起一个长语句,一起执行,现用这种方法需要60个这样参数变量:
    SELECT * FROM table_name  where date>#2006-6-1 8:32:00# union
    SELECT * FROM table_name  where date>#2006-6-2 8:32:00# union
    SELECT * FROM table_name  where date>#2006-6-3 8:32:00# ......大虾们,这块变量参数用一楼的方法也有点难写,希望兄弟们出出主意。
      

  4.   

    'SELECT * FROM table_name  where date>'+FloatToStr(Date)就行了,不要格式化时间