delphi中日期字段如何作为sql语句的条件

TestDate为日期字段,combobox1.text为1900-01-01格式的字符型数据,我想做一个查询,选择TestDate和combobox1相同的所有记录。请问这个sql语句如何写?
with F_dairytao.ADOQueryID do
begin
Close;
Sql.Clear;
Sql.Add('Select TestID from lactationlist');
Sql.Add('Where TestDate=combobox1);//就是combobox1如何转换成日期格式
ExecSql;
end;
谢谢

如果是针对SqlServer数据库,一般在Sql语句中直接把日期用单引号引起来就可以了。
FindSql:='Select * From zy_sf Where '
+' 结帐日期>='+''''+DateToStr(Dtp_SDate.Date)+''''
+' and 结帐日期<='+''''+DateToStr(Dtp_EDate.Date)+'''';
如果是Access数据库,就把单引换成#就可以了。
FindSql:='Select * From zy_sf Where '
+' 结帐日期>='+'#'+DateToStr(Dtp_SDate.Date)+'#'
+' and 结帐日期<='+'#'+DateToStr(Dtp_EDate.Date)+'#';
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-17

这句可以改成这样:  

 Sql.Add('Where TestDate='''+combobox1.Text+'''');//注意是单引号


另外,你应该把combobox1设为不可手动更改,因为有时手动更改后你这样做会出现无效的日期

追问

不行啊,标准表达式类型不匹配

追答

p 这应该是你的电脑的内置时间格式与数据库的不一致所至!

建议你把combobox 改为 DateTimePicker

然后可以用

var str:String;
begin
DateTimePicker.Date=Now;//这里要先对dateTimePicker进行初始化
str:=formatdatetime('yyyy-mm-dd hh:nn:ss',DateTimePicker.Date);
...
Sql.Add('Where TestDate='''+str+'''');//注意是单引号
...
end;

第2个回答  推荐于2016-03-03
var
ddate : TDateTime;
begin
ddate :=StrToDate(combobox1.Text);
with F_dairytao.ADOQueryID do
begin
Close;
Sql.Clear;
Sql.Add('Select TestID from lactationlist');
Sql.Add('Where TestDate='''+FormatDateTime('yyyy-mm-dd',ddate)+''');//就是combobox1如何转换成日期格式
open;
end;
end;本回答被提问者采纳
第3个回答  2013-06-17
Sql.Add('Where TestDate=#'+combobox1.text+'#');

 TestDate日期格式要同combobox1.text的格式(1900-01-01)相同。

第4个回答  2013-06-17
现在没在环境下,忘记了具体的语法了,你在环境下试着敲敲 有的会弹出来。 (strtodate)combobox1.value 类似这种的
delphi中日期字段如何作为sql语句的条件
如果是针对SqlServer数据库,一般在Sql语句中直接把日期用单引号引起来就可以了。FindSql:='Select * From zy_sf Where '+' 结帐日期>='+''''+DateToStr(Dtp_SDate.Date)+''''+' and 结帐日期<='+''''+DateToStr(Dtp_EDate.Date)+'''';如果是Access数据库,就把单引换成#就可以了。FindSql:='Select * From zy_sf Where '+' 结帐日期>='+'#'...

Delphi中如何用日期和其他条件,查询SQL的日期段内数据?
adoquery1.SQL.Add('select * from zyqd where 职员姓名=:zyxm and 签到日期 between cong and dao');这句话改成:adoquery1.SQL.Add('select * from zyqd where 职员姓名=:zyxm and 签到日期 between :cong and :dao');也就是多加了两个冒号,冒号表示他们是参数。

delphi 设定开始截至日期时间,筛选sql数据库里满足条件的数据,求解怎 ...
设置format属性为:yyyy-MM-dd HH:mm。就可以同时显示日期和时间了 比较使用datediff

delphi中按时间区域查询数据库?
dateValue_low, dateValue_high: string;begin DateTimeToString(dateValue_low,'YYYY-MM-DD',DateTimePicker1.DateTime);DateTimeToString(dateValue_high,'YYYY-MM-DD',DateTimePicker1.DateTime);\/\/。。。end;格式可设定,在YYYY-MM-DD中。然后再按照楼上的sql语句,'select * from tablename where b...

[Delphi]请教一下SQL Server数据库日期查询的问题.
str1 := strY2 + '-' + strM2 +'-21'; \/\/得到起始时间字符串 str2 := strY1 + '-' + strM1 +'-21'; \/\/得到结束时间字符串 strsql := 'select * from tablename where rqfield >='#39 + str1 + #39' and rqfield< '#39 + str2 + #39''; ;\/\/sql查询语句,注意...

delphi 如何给日期型变量赋值为类似'1990-01-01:00:00:00'形式呢_百 ...
数据库里的日期是日期格式吧 那样的话 sql:='select * from table where date1>'''+formatdatetime('yyyy-mm-dd hh:nn:ss',date2)+''';就可以了 其中 date1 是数据库里那个日期字段 date2 是你要比较的日期 和字符串一样 很多时候 不用formatdatetime用datetimetostr 也可以 ...

在delphi 里面的sql语句 如何实现按日期查询?
我在写一个“通用数据库萌芽体系”时,须要用SQL对一个日孚型字段进行萌芽,忽然发明Delphi没有日孚型变量,在Foxpro一一对大年夜括号{}就表示这是个日孚型变量,而在Delphi中我竟然不知道若何表示。羞愧之余,到处找材料、查信息。先是看到在Delphi FAQ中言之凿凿地说可以用:where aDate:=#01\/...

数据库里面有张销售表里面有时间属性,我想用delphi中MonthCalendar1实现查...
接着,进行日期范围的查询。在数据库SQL语句中,使用BETWEEN关键字来指定查询的日期范围。为了确保查询的准确性,需要考虑到日期时间的完整比较。这里通过在数据库查询语句中添加时间戳的最后两位(如23:59:59),确保仅查询该日期及其之后的记录。因此,完整的数据库查询语句应为:select * from t where ...

delphi中的时间段查询如何写 查询2个时间段之间的记录,具体语句如何...
DELPHI调用时间不可以这么写SQL语句,时间值需要通过参数传递过去,不能直接写SQL语句。时间太长了,你自己看看怎么AdoQuery的参数。如果时间字段是字符型就不需要了,如果数据库字段是日期类型必须通过传参实现。

delphi d6中如何在用SQL语句增加记录时让时间字段的值为空?用null通...
NULL;也许是一样的,呵呵2 最彻底的方法是动态构建那个adoQuery 里的SQL语句,如果日期字段为空,则不写这个日期字段,或者在SQL里就把它赋为NULL。我自己一般的写法都不会用Parameters这个参数,感觉不是很好用,不如动态生成SQL来得方便,当然,如果要用到Blob字段,那就非用不可了(把BLOB字段生成...

相似回答