delphi中日期字段如何作为sql语句的条件
TestDate为日期字段,combobox1.text为1900-01-01格式的字符型数据,我想做一个查询,选择TestDate和combobox1相同的所有记录。请...
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;
谢谢 展开
with F_dairytao.ADOQueryID do
begin
Close;
Sql.Clear;
Sql.Add('Select TestID from lactationlist');
Sql.Add('Where TestDate=combobox1);//就是combobox1如何转换成日期格式
ExecSql;
end;
谢谢 展开
5个回答
展开全部
如果是针对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)+'#';
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)+'#';
展开全部
这句可以改成这样:
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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于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;
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;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Sql.Add('Where TestDate=#'+combobox1.text+'#');
TestDate日期格式要同combobox1.text的格式(1900-01-01)相同。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
现在没在环境下,忘记了具体的语法了,你在环境下试着敲敲 有的会弹出来。 (strtodate)combobox1.value 类似这种的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询