我现在做的医务室药品管理系统当中,需要实现这么样的一个功能:
为了更好的对药品失效期的查询,我用了一个EDIT,用户可以在这里
输入要查询的日期,点击”查询“按钮后可以得到输入日期有前后三天
的药品名称,类型等。
过几天我就要给客户安装了,希望那位大侠给点高见!!!
急!!!!!!!
为了更好的对药品失效期的查询,我用了一个EDIT,用户可以在这里
输入要查询的日期,点击”查询“按钮后可以得到输入日期有前后三天
的药品名称,类型等。
过几天我就要给客户安装了,希望那位大侠给点高见!!!
急!!!!!!!
where abs(datediff('D',表中字段,EDIT值)) <= 3
不过对你的意思不太理解
'select * from table where date>='''+date1+''' and date<='''+date2+''''
begin
with datamodule1.JhdADOQuery do
begin
close;
sql.Clear;
sql.Add('select * from 进货表 where 进货日期>='+''''+formatdatetime('yyyy-mm-dd hh:mm:ss',datetimepicker1.datetime)+''''+' and 进货日期<='+''''+formatdatetime('yyyy-mm-dd hh:mm:ss',datetimepicker2.datetime)+'''');
open;
end;
end;
因客户的要求我用的是ACCESS的数据库,在日期这一项中,开始我用的是DATETIME型,可是显示时总是不对!!所以没有办法,我就将它改成了STRING型,但现在又要实现这种功能。
我的代码如下:
var date1;tdatetime;
date2;tdatetime;
date3;tdatetime;
begin
...
if edit1<>''then
begin
date1:=strtodate(dbcombobox1.Text);
date2:=date-7;
date3:=date+7; query1.close;
query1.sql.clear;
query1.sql.add('select overtime as 失效日期 , mydate as 时间, period as 有效期 , drugname as 药品名称, drugunit as 单位, drugnum as 数量, drugaddr as 产地,spec as 规格, drugcode as 批号,price as 价格');
query1.SQL.Add('from drugin') ;
query1.sql.add('where overtime >='+ #39 +datetostr(date2) + #39);
query1.sql.add('and overtime<='+datetostr(date3)+#39);
query1.open
可是不行!!!各位大哥给看看!!!
query1.sql.add('where overtime >='+ #39 +datetostr(date2) + #39);
query1.sql.add('and overtime<='+datetostr(date3)+#39);
^是不是这里少了一个#39
query1.open
where abs(datediff('D',日期的字段,EDIT.text)) <= 3
where fdate between :sd and :ed
在delphi里这样写:
parambyName('sd').Value := strtodate(edit1.text) -3;
parambyName('ed').Value := strtodate(edit1.text) +3;
短时间型:如表中显示为:2002-9-10 在datetimepicker中
显示为2002- 9-10,它就是多一个空格!!
这个问题没有解决,小弟我真是昨晚一夜都没有睡着,希望大哥们再帮帮我!!谢谢了。
var
S : String;
begin
S := DataTimeToStr(DateEdit.Date);
//写一个函数将 月 如果是一位替换为2位
S := S + " 00:00:00";
//查询的时候就可以用字符串匹配了
end;//end